Я новичок в ядре ASP.NET и нуждаюсь в каком-то направлении. Я пытаюсь выяснить простой сценарий с использованием настроек приложения в ASP.NET Core, а также с помощью Simple Injector.Как использовать основные параметры приложения ASP.NET с простым инжектором
Сначала я установил параметры конфигурации «Мощного типа», как описано here от Rick Strahl. Это отлично работает.
public class MySettings
{
public string ApplicationName { get; set; }
}
appsetting.json
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
},
"MySettings": {
"ApplicationName": "Test Service"
}
}
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
// Add Options
services.AddOptions();
// Add our Config object so it can be injected
services.Configure<MySettings>(Configuration.GetSection("MySettings"));
services.AddSingleton(GetTestBroker(container));
//Simple Injector
//services.AddSingleton<IControllerActivator>(new SimpleInjectorControllerActivator(container));
//services.AddSingleton<IViewComponentActivator>(new SimpleInjectorViewComponentActivator(container));
}
В других наших проектов используют простой Инжектор для DI. После добавления пакета Simple Injector и настройки его в соответствии с инструкциями я вижу, что моя конфигурация IOptions прерывается.
Что я хотел бы знать, было бы лучшей практикой для реализации конфигурации в ASP.NET Core и с использованием другой библиотеки DI, например Simple Injector?
Лучшая практика работы с IOptions описана здесь: https://github.com/simpleinjector/SimpleInjector/issues/143#issuecomment-155029876 – Steven
Я возьму взгляд. – Eric
@Steven. Посмотрев на эту статью, похоже, что канавы IOptions - это консенсус. Затем просто зарегистрируйте свой POCO в качестве одиночного элемента в контейнере DI. Это то, с чем вы справлялись? – Eric