c# - 如何从注入到asp net core中的控制器的IConfiguration访问ConnectionString?
问题描述
我有一个带有这个 appsetting.json 文件的 AspnetCore 项目:
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
},
"ConectionStrings": {
"DB": "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=test;Data Source=ENIAC"
}
}
现在我得到这个设置并用这个代码将它注入我的控制器:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
public IConfigurationRoot Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddSingleton<IConfiguration>(Configuration);
}
在我的控制器中,我正在尝试使用以下代码访问连接字符串:
public HomeController(IConfiguration _config) {
config = _config;
var t = config.GetConnectionString("DB");
Debug.WriteLine(t);
}
但t
现在为空。
我的错误在哪里?我该如何解决这个问题?
解决方案
您的 appsettings.json 文件中有错字:ConectionStrings
应该是ConnectionStrings
.
推荐阅读
- matlab - 在 Simulink 中以特定时间速率测量信号
- python - 如何打破python中的while循环?
- ruby-on-rails - Rails 5.2,Capybara 推出 Puma 服务器不设置会话 cookie
- firebase - 如何在flutter中从firebase获取数据
- php - 如何在 PHP 中严格设置变量的大小?
- tensorflow - Keras 展平图层输入形状
- javascript - 数据表在所有页面中定位行
- c# - 通过多个导航属性查询
- mysql - SQL 删除在同一事务期间创建的列?
- android - 如何设置列表视图格式如下图?我可以显示数据库中的所有数据,但这不是我想要的