c# - 在 .net core 中读取或访问自定义配置扩展
问题描述
我已经根据以下文章构建了一个自定义配置(提供程序和服务)。 https://medium.com/@dneimke/custom-configuration-in-net-core-2-193ff6f02046
现在,当想要从IConfiguration
使用 DI 时访问自定义添加的提供程序时。
我Configuration
在启动时看起来像
它显示它有 6 个提供程序,标记的第 5 个索引是我的自定义配置。
IConfiguration
在我的控制器中注入时,我如何访问我添加的自定义配置(第 5 个索引) ?
需要从自定义配置中获取connection和connectionsettings的值
TIA
解决方案
IConfigurationRoot.Providers
例如,您可以从中获取所有配置提供程序
public class HomeController : Controller
{
private readonly IConfiguration _configuration = null;
private readonly ApplicationDbContext _dbContext;
public HomeController(IConfiguration configuration, ApplicationDbContext dbContext)
{
_configuration = configuration;
_dbContext = dbContext;
}
public IActionResult Index()
{
var configurationRoot = _configuration as IConfigurationRoot;
var provider = (DbProvider)configurationRoot.Providers.Last();
// Or get specific provider using index as below comment has shown
// var list = configurationRoot.Providers.ToList();
// var provider = (DbProvider)list[5];
var connectionSettings = provider.connectionSettings;
return View();
}
}
推荐阅读
- json - How to read a json to a pandas MultiIndex Dataframe?
- windows - Windows 10 升级后 URL 在安全级别被阻止
- azure - Storage destination needs to have a Service SAS, not an Account SAS. What Does This Mean?
- python - 如何使用 python 从前 10 页中提取数据(标题、电子邮件链接、位置)
- python-3.x - 获取 AttributeError:“NoneType”对象在循环中使用列表时没有属性“附加”,这是在循环外声明的
- javascript - Textbox value not being multiplied when checkbox selected (HTML & Javascript/JQuery)
- c++ - 字符类型转换不兼容
- angular - Angular Libray build fails with error while pass the params with constructor
- ios - 如何使用清晰的背景颜色向 UICollectionViewCell 添加阴影?
- python - 如果一个数据帧的内容存在于另一个使用 pandas 的数据帧中,则减去/添加现有值