如何在ASP.NET Web应用程序的上下文中引用程序集

时间:2019-06-13 23:06:45

标签: asp.net-core javascriptserializer

我的ASP.NET Web应用程序面临一个非常严峻的问题,我使用的是Visual Studio社区2017,目标框架是.NET Core 2.2。

我必须解析一个JSON字符串,并发现System.Web.Script.Serialization在这种情况下非常有用。 不幸的是,似乎Visual Studio无法访问名称空间。关于如何让IDE找到它的任何想法吗?否则,对于如何以其他方式下载/解析JSON文件的任何建议将不胜感激。

我试图在项目的依赖项中添加对相应程序集(System.Web.Extensions.dll)的引用,该引用使Visual Studio可以找到名称空间,但导致以下内部服务器错误:

BadImageFormatException:无法加载文件或程序集'System.Web.Extensions,版本= 4.0.0.0,区域性=中性,PublicKeyToken = 31bf3856ad364e35'。参考程序集不应该加载执行。它们只能在“仅反射”加载器上下文中加载。 (来自HRESULT的异常:0x80131058)

在漫游时,我看到有人建议从位于projet内的\ bin文件中删除程序集(System.Web.Extensions.dll)。这也以错误结束: HTTP错误500.0-ANCM进程内处理程序加载失败

这是我要解析JSON文件的部分的特定代码,基本上,如果我对其进行注释,则Web应用程序可以正常运行。


使用System.Web.Script.Serialization;

命名空间myApp.Models

{

/* Class : MashModel
 * Downloads, parses and stores a list of elements from the JSON file
 * Author : SoraGtg
 */
public class Elements
{
    public List<Elements> elements { get; set; }

    public void GatherElts()
    {
        var json = new WebClient().DownloadString("url/to/json");
        this.elements = new JavaScriptSerializer().Deserialize<List<Cat>>(json);
    }
}

}


到目前为止,我不打算在视图和控制器部分中使用json(elements属性)发出的数据。

我希望部署Web应用程序并嵌入System.Web.Extensions程序集所提供的功能,但是由于无法访问它们而无法部署(无法引用程序集,无法单独找到它)

谢谢!

1 个答案:

答案 0 :(得分:1)

我认为您正在尝试使用不属于Net Core的库,因此它无法加载DLL。使用类似NewtonsoftJson的东西可以解决您的问题。它们具有Net Core的版本:https://github.com/JamesNK/Newtonsoft.Json