我的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程序集所提供的功能,但是由于无法访问它们而无法部署(无法引用程序集,无法单独找到它)
谢谢!
答案 0 :(得分:1)
我认为您正在尝试使用不属于Net Core的库,因此它无法加载DLL。使用类似NewtonsoftJson的东西可以解决您的问题。它们具有Net Core的版本:https://github.com/JamesNK/Newtonsoft.Json