web.configのアプリ設定「文字列」をCommonC#クラスに渡すことは可能ですか?
3 に答える
どのクラスConfigurationManager.AppSettings["KeyToSetting"]
でも、web.config(またはapp.config)の要素の任意の値にアクセスするために使用できます
もちろん可能ですが、適切に設計されたクラス(ASP.NET用に明示的に設計されていない限り)は、情報の出所を認識したり気にしたりするべきではないことに注意してください。クラスにweb.configから直接情報を取得させるのではなく、アプリケーション自体からの文字列値を使用して設定するプロパティ(またはメソッドですが、プロパティはより「.NETの方法」です)が必要です。
多くの場所で使用される構成値がある場合は、構成項目の実際の読み込みを抽象化し、厳密に型指定された値と変換、および場合によっては既定値を提供する構成クラスの開発を検討してください。
この手法は、構成ファイルへのアクセスをローカライズして、後で実装を簡単に切り替えることができるようにし (代わりにレジストリに保存するなど)、値をファイルから一度だけ読み取る必要があるようにします - ただし、構成マネージャーが同様にこの方法で実装され、最初に使用されたときにすべての値を読み取り、その後のアクセスで内部ストアからそれらを提供します。本当の利点は、強力なタイピングと 1 回限りの変換だと思います。
public static class ApplicationConfiguration
{
private static DateTime myEpoch;
public static DateTime Epoch
{
get
{
if (myEpoch == null)
{
string startEpoch = ConfigurationManager.AppSettings["Epoch"];
if (string.IsNullOrEmpty(startEpoch))
{
myEpoch = new DateTime(1970,1,1);
}
else
{
myEpoch = DateTime.Parse(startEpoch);
}
}
return myEpoch;
}
}
}