私のXMLは次のようになり、ファイル名はweb.config
です
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="configFile" value="IIS.config"/>
<add key="RialtoDomain" value="ASNC_AUDITORS"/>
</appSettings>
<system.serviceModel>
....
</system.serviceModel>
</configuration>
私がこのように読んだときのコードでは
String path = ConfigurationSettings.AppSettings["configFile"];
Null値を取得しています。例外はスローされません。これは正しい方法ですか?
web.config
にアクセスしているので、おそらく使用すべきです
using System.Web.Configuration;
WebConfigurationManager.AppSettings["configFile"]
名前空間を追加
using System.Configuration;
の代わりに
ConfigurationSettings.AppSettings
あなたは使うべきです
ConfigurationManager.AppSettings
String path = ConfigurationManager.AppSettings["configFile"];
ConfigurationManager.AppSettings["configFile"]
http://msdn.Microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings.aspx
System.configuration dllを参照として追加し、System.Configuration.ConfigurationManager.AppSettings["configFile"].ToString
を使用する必要があります
最初にusing
statementを追加することを忘れないでください。それが役立つことを願っています。
using System.Configuration;
/// <summary>
/// For read one setting
/// </summary>
/// <param name="key">Key correspondent a your setting</param>
/// <returns>Return the String contains the value to setting</returns>
public string ReadSetting(string key)
{
var appSettings = ConfigurationManager.AppSettings;
return appSettings[key] ?? string.Empty;
}
/// <summary>
/// Read all settings for output Dictionary<string,string>
/// </summary>
/// <returns>Return the Dictionary<string,string> contains all settings</returns>
public Dictionary<string, string> ReadAllSettings()
{
var result = new Dictionary<string, string>();
foreach (var key in ConfigurationManager.AppSettings.AllKeys)
result.Add(key, ConfigurationManager.AppSettings[key]);
return result;
}