ASP.NET Core 3.1项目引用了.NET 4.7.2项目,在同一解决方案中出现错误'System.Web.ConfigurationManager'。

我有一个ASP.NET Core 3.1项目,在同一个解决方案中引用了一个.NET 4.7.2项目。它的编译没有问题,但在运行时我得到一个错误。

无法加载类型’System.Web.Configuration.WebConfigurationManager’。

我已经安装了 Microsoft.Windows.Compatibility 包,但这并没有帮助。

是我遗漏了什么,还是如果不对.NET 4.7.2项目进行重大重构,使其不使用该包,就无法工作?System.Web.Configuration.WebConfigurationManager 命名空间?

解决方案:

我有一个ASP.NET Core 3.1项目,在同一个解决方案中引用了一个.NET 4.7.2项目。它的编译没有问题,但在运行时我得到一个错误。

无法加载类型’System.Web.Configuration.WebConfigurationManager’。

ASP.NET Core是一个跨平台的框架,和ASP.NET Core使用不同的配置设置,详情请查看。

我想,你的.NET 4.7项目可能是一个类库,会被其他应用程序调用。

如上错误所示 System.Web.Configuration.WebConfigurationManager 不可能与.NET Core应用程序兼容。

如果可能的话,你可以尝试修改你的类库(.NET 4.7项目),将从调用者应用中获取的数据(你在web.config中配置的,或appsettings.json)传递给类库方法,而不是通过以下方式获取数据 WebConfigurationManager 类库中。

此外,你也可以通过修改和添加额外的方法来使它与ASP.NET Core配置设置一起工作,如下所示。

public class MyClassLibrary
{
    private readonly IConfiguration Configuration;
    public MyClassLibrary()
    {
    }
    public MyClassLibrary(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public void MethodForNet()
    {
        var val = WebConfigurationManager.AppSettings["mykey"];

        //code logic here
    }

    public void MethodForCore()
    {
        var val = Configuration["AppSettings:mykey"];

        //code logic here
    }

    //other methods
}

给TA打赏
共{{data.count}}人
人已打赏
解决方案

将8kHz mulaw转换为PCM 16kHz。

2022-5-11 20:03:34

解决方案

Java ArrayList--8x8游戏板。

2022-5-11 21:00:27

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索