首页 > 解决方案 > microsoft.extensions.configuration .Net 框架 4.7 迁移

问题描述

microsoft.extensions.configuration 用于处理配置的跨平台解决方案。但尝试在已经存在的 .net 框架项目中使用它并不简单,因此任何建议都会有所帮助。

扩展库不能与 app.config 和 web.config 一起使用,因为:

  1. 在扩展 xml 提供程序中,必须有“名称”属性来区分相同的元素标签(https://docs.microsoft.com/en-us/dotnet/core/extensions/configuration-providers)和 .net 框架配置文件有很多重复(例如 app.config 在许多部分中包含许多没有名称属性的“添加”元素)

  2. 在扩展 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 的?

标签: c#.netconfiguration.net-standard-2.0

解决方案


推荐阅读