При настройке параметров в моем проекте я столкнулся с этой ошибкой:
System.InvalidOperationException: не удалось создать экземпляр типа 'Microsoft.Extensions.Options.IOptions`1 [[myproject.Models.ConnectionStrings,] '.Сложные типы, связанные с моделью, не должны быть абстрактными или значениями и должны иметь конструктор без параметров.В качестве альтернативы, задайте для параметра 'optionsAccessor' ненулевое значение по умолчанию.
Есть идеи?
Я настроил модель следующим образом:
namespace myproject.Models
{
public class ConnectionStrings
{
public ConnectionStrings()
{
AzureStorageConnectionString = "azurestorageconnectionstring_ctor";
}
public string AzureStorageConnectionString { get; set; }
}
}
Startup.cs ConfigureServices (службы IServiceCollection) содержит следующие две строки
services.AddOptions();
services.Configure<ConnectionStrings>(Configuration.GetSection("ConnectionStrings"));
Мой контроллер содержит это
private ConnectionStrings _connectionStrings;
public IActionResult Index(IOptions<ConnectionStrings> optionsAccessor)
{
_connectionStrings = optionsAccessor.Value;
return View();
}
И мои appsettings.json и appsettings.Development.json состоят из следующих
{
"Logging": {
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
},
"ConnectionStrings": {
"AzureStorageConnectionString": "xxxxxxxxx"
},
}