web.configファイルから値を追加して読み取るにはどうすればよいですか?
変更するたびにアプリケーションが再起動されるため、web.configを変更しないことをお勧めします。
ただし、System.Configuration.ConfigurationManager.AppSettings
を使用してweb.configを読み取ることができます
次のweb.configがある場合:
<appSettings>
<add key="ClientId" value="127605460617602"/>
<add key="RedirectUrl" value="http://localhost:49548/Redirect.aspx"/>
</appSettings>
使用例:
using System.Configuration;
string clientId = ConfigurationManager.AppSettings["ClientId"];
string redirectUrl = ConfigurationManager.AppSettings["RedirectUrl"];
基本が必要な場合は、次の方法でキーにアクセスできます。
string myKey = System.Configuration.ConfigurationManager.AppSettings["myKey"].ToString();
string imageFolder = System.Configuration.ConfigurationManager.AppSettings["imageFolder"].ToString();
Web構成キーにアクセスするために、アプリケーションで常に静的クラスを作成します。これは、必要な場所にアクセスでき、アプリケーション全体で文字列を使用していないことを意味します(Web構成で変更された場合、それらを変更するすべての発生を通過する必要があります)。サンプルを次に示します。
using System.Configuration;
public static class AppSettingsGet
{
public static string myKey
{
get { return ConfigurationManager.AppSettings["myKey"].ToString(); }
}
public static string imageFolder
{
get { return ConfigurationManager.AppSettings["imageFolder"].ToString(); }
}
// I also get my connection string from here
public static string ConnectionString
{
get { return ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; }
}
}
キーが<appSettings>
ノード内に含まれると仮定します。
ConfigurationSettings.AppSettings["theKey"];
「書き込み」については、簡単に言えば、dont。
Web.configはそのためには設計されていません。値を絶えず変更する場合は、静的ヘルパークラスに入れてください。
Ryan Farleyのブログには、これに関する素晴らしい投稿があります。web.configファイルに書き戻さない理由をすべて記載しています。 。NETアプリケーションの構成ファイルへの書き込み
私はこのようにすべてのappSettingを呼び出すためのsiteConfigurationクラスです。それが誰かを助けるならば、私はそれを共有します。
「web.config」に次のコードを追加します
<configuration>
<configSections>
<!-- some stuff omitted here -->
</configSections>
<appSettings>
<add key="appKeyString" value="abc" />
<add key="appKeyInt" value="123" />
</appSettings>
</configuration>
これで、すべてのappSetting値を取得するためのクラスを定義できます。このような
using System;
using System.Configuration;
namespace Configuration
{
public static class SiteConfigurationReader
{
public static String appKeyString //for string type value
{
get
{
return ConfigurationManager.AppSettings.Get("appKeyString");
}
}
public static Int32 appKeyInt //to get integer value
{
get
{
return ConfigurationManager.AppSettings.Get("appKeyInt").ToInteger(true);
}
}
// you can also get the app setting by passing the key
public static Int32 GetAppSettingsInteger(string keyName)
{
try
{
return Convert.ToInt32(ConfigurationManager.AppSettings.Get(keyName));
}
catch
{
return 0;
}
}
}
}
前のクラスの参照を追加し、以下のようなキー呼び出しにアクセスします
string appKeyStringVal= SiteConfigurationReader.appKeyString;
int appKeyIntVal= SiteConfigurationReader.appKeyInt;
int appKeyStringByPassingKey = SiteConfigurationReader.GetAppSettingsInteger("appKeyInt");