错误CS0234:命名空间“System.Web”中不存在类型或命名空间名称“Script”

时间:2012-10-23 16:34:07

标签: c# visual-studio-2010 javascriptserializer jsonserializer

我正在尝试在我的应用程序中使用JavaScriptSerializer

我最初收到了

  

找不到JavaScriptSerializer

我通过添加:

解决了这个问题
using System.Web.Script.Serialization;

但是,子关键字Script带有蓝线下划线:

  

命名空间中不存在类型或命名空间“脚本”   'System.Web'(您是否缺少程序集引用?)

所以我在项目中添加了一个引用:

  

C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ System.Web.Extensions.dll

这没有帮助。我仍然收到相同错误的蓝色下划线。引用标有感叹号黄色警告:

enter image description here

我在this thread上尝试了建议的解决方案,但正如@ user781490所示,他们在我的情况下没有帮助。

知道如何解决这个问题吗?

5 个答案:

答案 0 :(得分:36)

我也一样。脚本被强调了。我添加了对System.Web.Extensions的引用。此后,脚本不再加下划线。希望这有助于某人。

答案 1 :(得分:16)

添加System.Web.Extensions作为项目的参考

enter image description here

参考

答案 2 :(得分:12)

我找到了this MSDN forum post which suggests two solutions to your problem

第一种解决方案(不推荐):

  

找到.Net Framework 3.5和2.0文件夹

     

将System.Web.Extensions.dll从3.5和System.Web.dll从2.0复制到应用程序文件夹

     

添加对这两个程序集的引用

     

更改引用的程序集属性,设置"复制本地"为真   并构建以测试您的应用程序,以确保所有代码都能正常工作

第二种解决方案(使用不同的类/库):

发布问题的用户声称Uri.EscapeUriStringHow to: Serialize and Deserialize JSON Data帮助他复制了JavaScriptSerializer的行为。

您也可以尝试使用Json.Net。它是第三方图书馆,非常强大。

答案 3 :(得分:7)

只需添加对System.Web.Extensions的引用即可。

答案 4 :(得分:1)

由于JNetSerializer在.Net 4.0+中已弃用,我使用http://www.newtonsoft.com/json来解决此问题。

NuGet->安装包Newtonsoft.Json