【发布时间】:2017-01-15 04:22:52
【问题描述】:
我希望使用在Program.cs 中实例化的变量Config 以便能够在我拥有的其他类中使用。据我了解,我们需要使用依赖注入,但不知道如何实现。
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.
}
}
【问题讨论】:
-
在另一个类中引用可执行程序集的成员是不寻常的。我认为你应该重新考虑设计。
-
您能建议如何做到这一点吗?我的要求是能够在应用程序的任何位置访问所有配置条目。
-
我喜欢创建配置存储库并将配置数据视为任何数据存储(如数据库)。因此,也许可以专门创建一个类来保存这些字段。如果该变量通过
Program.Config公开,您可以使用该变量,但就 SOLID 原则而言,这将是对 Program 类的滥用。
标签: c# .net dependency-injection console-application .net-core