c# - microsoft.extensions.configuration .Net 框架 4.7 迁移
问题描述
microsoft.extensions.configuration 用于处理配置的跨平台解决方案。但尝试在已经存在的 .net 框架项目中使用它并不简单,因此任何建议都会有所帮助。
扩展库不能与 app.config 和 web.config 一起使用,因为:
在扩展 xml 提供程序中,必须有“名称”属性来区分相同的元素标签(https://docs.microsoft.com/en-us/dotnet/core/extensions/configuration-providers)和 .net 框架配置文件有很多重复(例如 app.config 在许多部分中包含许多没有名称属性的“添加”元素)
在扩展 xml 提供程序中,它们会在命名空间的情况下抛出异常(例如在运行时元素中有 xlmns ,https://github.com/dotnet/runtime/issues/47018)
我们也有使用配置文件的架构(https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/)并且在.net标准中没有架构,所以我不确定如何将我们的文件转换为 appsetting.json 或 appsetting.xml(例如如何处理 nuget 管理器添加到 app.config 的运行时元素以及如何处理 system.web ...)。
因此,我尝试继续使用相同的配置文件并配置自定义 xmlConfigurationProvider 类,这些类使用 System.ConfigurationManager 添加 appsettings 键,并从流中删除 runtime,appSettings,configSections,但我认为它不是正确的方法,因为我需要忽略 web.config 中的许多部分并操作 xmlConfigurationProvider 类正在使用的流。
那么请分享您的知识,您是如何在具有向后兼容性的 .net 框架中使用 microsoft.extensions.configuration 的?
解决方案
推荐阅读
- reactjs - React 限制嵌套更新的数量以防止无限循环
- visual-studio - 没有 C++ 就无法构建新的 Xamarin.iOS 项目
- android - 格式化到日期的剩余时间
- python - 如何迭代命名空间中的所有现有图?
- excel - 检查或查找值是否存在于另一列中
- shell - uniq,如何对口音不敏感?
- c# - Swashbuckle(swagger) 在 JSON 中公开其他命名空间
- reactjs - 有没有办法知道为什么我的反应应用程序在 cpanel 的子域上显示空白
- excel - 通过 VBA 的 Excel 复选框
- python - 在 Django 中发送确认电子邮件时出现 SMTPAuthentication 错误