在我的项目上配置选项时,我遇到了这个错误:
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; }
}
}
Run Code Online (Sandbox Code Playgroud)
Startup.cs ConfigureServices(IServiceCollection services) 包含以下两行
services.AddOptions();
services.Configure<ConnectionStrings>(Configuration.GetSection("ConnectionStrings"));
Run Code Online (Sandbox Code Playgroud)
我的控制器包含这个
private ConnectionStrings _connectionStrings;
public IActionResult Index(IOptions<ConnectionStrings> optionsAccessor)
{
_connectionStrings = optionsAccessor.Value;
return View();
}
Run Code Online (Sandbox Code Playgroud)
我的 appsettings.json 和 appsettings.Development.json 都包含以下内容
{
"Logging": {
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
},
"ConnectionStrings": {
"AzureStorageConnectionString": "xxxxxxxxx"
},
}
Run Code Online (Sandbox Code Playgroud)