我正在开发一个类库(.NET标准2.0) CL,它将被我们的一些遗留项目(.NET Framework4.6.1) LP和我们的许多新实现(.NET Core3.1) NI使用。
我的类库CL需要一些配置设置,但是当新的实现NI使用它时,CL接收Microsoft.Extensions.Configuration.IConfiguration,就像NI有appSettings.json一样。
当从遗留项目LP中使用时,CL接收System.Configuration.ConfigurationManager.AppSettings,就像LP具有web.config或app.config一样。
是否有任何优雅的方法来读取这两种类型的项目的配置-- .NET框架或.NET核心?我不想阅读像LP或NI这样正在使用我的库CL的项目中的配置,因为这种配置对它们没有任何用处。
private static void LoadConfiguration() // called from constructor
{
string receivedFromNETCore = configuration["DataMappingXml"];
// Microsoft.Extensions.Configuration.IConfiguration
string receivedFromNETFramework =
ConfigurationManager.AppSettings["DataMappingXml"];
// TODO: LOAD configuration and process.
}发布于 2021-12-14 01:00:29
解决这个问题的推荐方法是用System.Configuration.ConfigurationManager引用替换所有的Microsoft.Extensions.Configuration引用,并从ASP.NET迁移到ASP.NET核心。微软关于迁移:从ASP.NET迁移到ASP.NET内核的文章
如果迁移对您来说是不可能的,可以尝试平台多目标:从.NET框架迁移到.NET内核。
https://stackoverflow.com/questions/67293816
复制相似问题