因此,实际上有两种方法可以做到这一点.
选项1:选项类
你有一个应用程序设置.json文件:
{
"myConfiguration": {
"myProperty": true
}
}
您可以按如下方式创建配置POCO:
public class MyConfiguration
{
public bool MyProperty { get; set; }
}
在你的创业公司.cs您的ConfigureServices中有注册配置的内容:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<MyConfiguration>(Configuration.GetSection("myConfiguration"));
}
然后在控制器/服务中注入IOptions,它就可以使用了.
public class ValuesController : Controller
{
private readonly MyConfiguration _myConfiguration;
public ValuesController(IOptions<MyConfiguration> myConfiguration)
{
_myConfiguration = myConfiguration.Value;
}
}
就我个人而言,我不喜欢使用IOptions,因为我认为它会拖拽一些我并不真正想要的额外垃圾,但你可以做一些很酷的事情,比如热交换之类的.
选项2:配置POCO
这基本上是相同的,但是在您的configure Services方法中,您将绑定到POCO的一个单例.
public void ConfigureServices(IServiceCollection services)
{
//services.Configure<MyConfiguration>(Configuration.GetSection("myConfiguration"));
services.AddSingleton(Configuration.GetSection("myConfiguration").Get<MyConfiguration>());
}
然后你可以直接注射POCO:
public class ValuesController : Controller
{
private readonly MyConfiguration _myConfiguration;
public ValuesController(MyConfiguration myConfiguration)
{
_myConfiguration = myConfiguration;
}
}
有点简单,因为你可能应该使用一个接口来简化单元测试,但是你明白了.
大部分来自这里:http://dotnetcoretutorials.com/2016/12/26/custom-configuration-sections-asp-net-core/