Config
はProgram.cs
でインスタンス化されているので、他のクラスで使用することができます。私が理解しているように、依存性注入を使う必要がありますが、達成方法を確かめる必要はありません。アプリワイド静的変数C#コンソールアプリケーション
のProgram.cs
public class Program
{
static IConfigurationRoot Config = null;
public static void Main(string[] args)
{
Config = new ConfigurationBuilder()
.SetBasePath(Environment.CurrentDirectory)
.AddJsonFile("appsettings.json")
.AddEnvironmentVariables()
.Build();
}
}
TestClass.cs
public class TestClass
{
public void DoSomething()
{
// Now I need to use that instantiated Config object here.
}
}
実行可能アセンブリのメンバを別のクラスで参照することは珍しいことです。私はあなたがデザインを再考すべきだと思います。 – Crowcoder
どうすればいいのですか?私のここでの要件は、アプリケーションのどこにいても、すべての設定エントリにアクセスできることです。 – TSR
私は構成リポジトリを作成し、(データベースのような)任意のデータストアのような設定データを扱うのが好きです。だから、おそらくそれらのフィールドを保持するためのクラスを作成します。この変数は、 'Program.Config'によって公開されていれば使用できますが、SOLIDの原則ではProgramクラスを悪用することになります。 – Crowcoder