Я переношу проект ASP.NET 5 RC1 в ASP.NET Core и столкнулся с интересной проблемой, которую я еще не видел, или нашел решение для. неРаздел конфигурации ядра ASP.NET при запуске
Для того чтобы использовать параметры конфигурации в пределах Запуск я ранее retrived на страницу настройки следующим образом
// Works fine for DI both in ASP.NET 5 RC1 and ASP.NET Core
services.Configure<SomeConfigurationClass>(Configuration.GetSection("SomeConfigurationSection"));
// How I previous retrieved the configuration for use in startup.
// No longer available in ASP.NET Core
var someConfigurationToUseLater = Configuration.Get<SomeConfigurationClass>("SomeConfigurationSection");
После обновления ASP.NET 1.0 Ядро, кажется Configuration.Get < Т >() больше не доступен ,
Я пробовал обновить код для использования Configuration.GetValue <T>() однако это, похоже, не работает с объектами и будет работать только при предоставлении пути к значению. Это оставило меня с обходным путем для наиболее из моих классов конфигурации, как так
var someConfigurationName = "someConfiguration";
var someConfigurationClass = new SomeConfigurationClass()
{
Value1 = Configuration.GetValue<string>($"{someConfigurationName}:value1"),
Foo = Configuration.GetValue<string>($"{someConfigurationName}:foo"),
Bar = Configuration.GetValue<string>($"{someConfigurationName}:bar")
};
Однако это вопрос, когда класс конфигурации содержит массив объектов. В моем случае массив Клиента объекты
public class ClientConfiguration
{
public Client[] Clients { get; set; }
}
со следующей конфигурацией
"configuredClients": {
"clients": [
{
"clientName": "Client1",
"clientId": "Client1"
},
{
"clientName": "Client2",
"clientId": "Client2"
}
]
}
Где это было ранее связывать свойства Клиентов моей конфигурации класса проблем нет, я больше не могу найти способ делать это в ASP.NET Ядра 1,0
Еще один голос за такой подход. Я использую этот подход уже несколько недель, и он отлично работает. –
Возможно, стоит отметить, что мне нужно было обновить Microsoft.Extensions.Configuration и Microsoft.Extentions.Options.ConfigurationExtensions to 1.1.0-preview1-final –
Было ли это удалено снова в окончательной версии 1.1? – AndyM