首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在同一个解决方案错误'System.Web.Configuration.WebConfigurationManager‘中引用.NET 4.7.2项目的ASP.NET Core3.1项目

在同一个解决方案错误'System.Web.Configuration.WebConfigurationManager‘中引用.NET 4.7.2项目的ASP.NET Core3.1项目
EN

Stack Overflow用户
提问于 2020-04-13 18:57:15
回答 1查看 924关注 0票数 4

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

无法加载'System.Web.Configuration.WebConfigurationManager'.类型的

我已经在Microsoft.Windows.Compatibility核心项目中安装了ASP.NET包,但这并没有帮助。

如果不对.NET 4.7.2项目进行重大重构以避免使用System.Web.Configuration.WebConfigurationManager命名空间,我是否遗漏了一些东西?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-14 07:34:34

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

无法加载类型的'System.Web.Configuration.WebConfigurationManager‘

ASP.NET Core是一个跨平台的框架,ASP.NET Core使用不同的配置设置,有关更多信息,请参见:

我认为您的.NET 4.7项目可能是一个类库,并且会被其他应用程序调用。

如上所述,错误指示System.Web.Configuration.WebConfigurationManager无法与.NET核心应用程序兼容。

如果可能的话,您可以尝试修改类库(.NET 4.7项目),将检索到的数据(您在web.config或appsettings.json中配置的数据)从调用程序传递到类库方法,而不是通过类库中的WebConfigurationManager检索数据。

此外,您还可以修改和添加其他方法,使其使用ASP.NET核心配置设置,如下所示。

代码语言:javascript
复制
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
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61194737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档