我是.NET Core的新手,如果这是一个新问题,我会道歉。
我使用vs 2017在.net core 2中创建了一个web api项目。
对我来说,我有一些连接设置的appsettings.json
文件。
在阅读了Microsoft教程中的IOptions<T>
后,我正在执行以下操作:
public void ConfigureServices(IServiceCollection services)
{
services.AddOptions();
services.Configure<MyOptions>(Configuration);
// I want to access MyOptions object here to configure other services?how do i do that?
service.AddHangfire( // Get MyOptions.HangfireConenctionString etc.)
}
如何在
MYOptions
中访问创建的ConfigureServices
对象,以及是否需要在Configure(IApplicationBuilder app,..)
方法中访问它?在教程中,我只在控制器中看到了注入
IOptions<T>
的示例。 最佳答案
在中使用某些设置
public void ConfigureServices(IServiceCollection services)
{
// Load the settings directly at startup.
var settings = Configuration.GetSection("Root:MySettings").Get<MySettings>();
// Verify mailSettings here (if required)
service.AddHangfire(
// use settings variable here
);
// If the settings needs to be injected, do this:
container.AddSingleton(settings);
}
如果您要求在应用程序组件内使用配置对象,请不要将
IOptions<T>
注入组件,因为这只会导致不可原谅的缺点,如here所述。相反,直接注入值,如下例所示。public class HomeController : Controller
{
private MySettings _settings;
public HomeController(MySettings settings)
{
_settings = settings;
}
}
关于c# - 访问IOptions <T>对象.NET Core,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47035983/