2013-03-19 41 views
-2

我有一個app.config文件是這樣的: -如何根據app.config文件中的值獲取密鑰?

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings> 
    <add key="botLogs" value="d:\TFS Projects-BotLogs/"/> 
    <add key="botfolder" value="C:\BOTSCONFIG"/> 
    </appSettings> 
    <connectionStrings> 
    <add connectionString="Server=1.1.1.1;Database=BGAppCrawling;UID=sa;Password=something;" name="VGDB"/> 
    <add connectionString="Server=1.1.1.1;Database=BGMappingStaging;UID=sa;Password=something;" name="VGDBMapping"/> 
    </connectionStrings> 
</configuration> 

現在我可以獲取基於在appSettings部分鍵的值是這樣的: -

string filePath = ConfigurationSettings.AppSettings["botLogs"].ToString(); 

但是,什麼是,如果我想要的方式根據appSetting部分的值獲取密鑰?

+1

我是否理解正確的,但要找到通過搜索值的關鍵? – 2013-03-19 11:02:21

回答

0
foreach(string key in System.Configuration.ConfigurationSettings.AppSettings) 
{ 
var key = key.ToString(); 
var value = ConfigurationSettings.AppSettings[key.ToString()]; 
//Do something here 
} 

var settings = System.Web.Configuration.ConfigurationSettings.AppSettings; 

var value = from string k in settings.Keys 
      where k.StartsWith("MyValue") 
      select settings[k]; 
0

你可以嘗試以下GetEnumerator method基於代碼:

NameValueCollection values = ConfigurationManager.AppSettings; 
Iterate(values);  
public void Iterate(NameValueCollection myCollection) 
{ 
    IEnumerator myEnumerator = myCollection.GetEnumerator(); 
    Console.WriteLine("KEY VALUE"); 
    foreach (String item in myCollection.AllKeys) 
    Console.WriteLine(" {0,-10} {1}", item, myCollection[item]); 
    Console.WriteLine(); 
} 
0
foreach (string key in Configuration.AppSettings.Settings.AllKeys) 
     { 
      string value = appSettings.Settings[key].Value; 

      if (value.Equals(myValue)) 
      { 
       Console.WriteLine("Found Key: " + key); 
       break; 
      } 
     } 
0

我會說,你應該用鍵替換值的鍵和值,

<add key="d:\TFS Projects-BotLogs/" value="botLogs"/> 
<add key="C:\BOTSCONFIG" value="botfolder"/> 

感謝 拉克什

相關問題