これは、初期構成が保存されている場所 (xml ファイル、データベースなど) によって少し異なりますが、要点がわかります。
これらがすべてのアプリケーション ユーザーに対して同じグローバル構成設定である場合、次のようなクラスを作成できます。
public class Config
{
public static ClientConfiguration Current
{
get
{
if (HttpContext.Current.Application["clientconfig"] == null)
{
//Fill object from database
}
return HttpContext.Current.Application["clientconfig"] as ClientConfiguration;
}
set
{
//store object in database
//invalidate what is stored in application object
//so that it will be refreshed next time it's used
HttpContext.Current.Application["clientconfig"] = null;
}
}
}
これにより、グローバル Application オブジェクトが保存ClientConfiguration
され、すべてのページで使用できるようになるため、ページの読み込み時に作成する必要がなくなります。
こんな感じで使えます
private void Foo()
{
ClientConfiguration config = Config.Current;
}
同じデータを共有する必要がある複数のプロジェクトがある場合は、オブジェクトをデータベースまたは共有 XML ファイルに格納し、新しいクラス ライブラリ プロジェクトを作成して、Config クラスへの参照を含めることができるようにすることをお勧めします。