我有非常简单的应用程序设置:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"ConnectionStrings": {
"DefaultConnection": "Server=test;Database=test;Trusted_Connection=True;"
},
"AllowedHosts": "*"
}
连接字符串的类:
public class ConnectionStrings
{
public string DefaultConnection { get; set; }
}
我在DI中这样注册:
builder.Services.AddOptions<ConnectionStrings>(builder.Configuration.GetConnectionString("DefaultConnection"));
我在构造函数中注入IOption,但它始终为null:
public class ShoppingCartRepository : IShoppingCartRepository
{
private readonly IOptions<ConnectionStrings> _connectionStrings;
public ShoppingCartRepository(IOptions<ConnectionStrings> connectionStrings)
{
_connectionStrings = connectionStrings;
}
// ...
}
}
我可以对连接字符串使用IOptions吗?还是应该使用另一种方法?
使用连接字符串的最佳方式是什么?
2条答案
按热度按时间ccrfmcuu1#
AddOptions
方法接受一个类型为string
的参数,该参数是选项示例的名称,但是您将appsettings.json
中的DefaultConnection
值传递给它。应在
AddOptions
之后添加Bind
方法fumotvh32#
让我们从这里开始: