【问题标题】:error CS0234: The type or namespace name 'Script' does not exist in the namespace 'System.Web'错误 CS0234:命名空间“System.Web”中不存在类型或命名空间名称“脚本”
【发布时间】:2012-10-13 15:58:07
【问题描述】:

我正在尝试在我的应用程序中使用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

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

我在this thread 上尝试了建议的解决方案,但正如@user781490 指出的那样,它们对我的情况没有帮助。

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

【问题讨论】:

  • 所以你的项目指向的框架肯定不是客户端配置文件的版本,对吧?
  • 正如我上面的用户所说,确保您的项目面向 .NET 4 而不是 .NET 4 客户端配置文件。
  • @Arran It is .NET Framework 4 Client Profile 但是:(1) 我对将其转换为 .NET Framework 4 不感兴趣。 (2) 如果您阅读了该主题,您会注意到其中的提示对那些拥有完整 .NET Framework 4 的人也没有帮助。肯定有办法在客户资料中使用JavaScriptSerializer,对吧?
  • @TejasSharma 如果我尝试将 Target 框架从 .NET Framework 4 Client Profile 更改为 .NET Framework 4,我会收到警告说我的项目可能会发生可怕的事情......所以当被问到“你确定你想改变这个项目的Target Framework吗?”,当然我点击No
  • 您是否尝试过删除然后重新添加 System.Web.Extensions 引用?

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


【解决方案1】:

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

【讨论】:

  • 我已经添加了对 System.Web.Extensions 的引用,现在它们都带有下划线
【解决方案2】:

添加 System.Web.Extensions 作为对您项目的引用

供参考

【讨论】:

    【解决方案3】:

    我找到了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 复制到应用程序文件夹

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

    更改引用的程序集属性,将“复制本地”设置为 true 并构建以测试您的应用程序以确保所有代码都可以工作

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

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

    您也可以尝试使用Json.Net。这是一个第三方库,非常强大。

    【讨论】:

    • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5 中引用3.5 版本就可以了。谢谢!
    • stackoverflow.com/questions/4444903/… newtonsoft.json 是另一种选择。
    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

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

      NuGet-> 安装包 Newtonsoft.Json

      【讨论】:

        【解决方案6】:

        我已经尝试过了,您可以添加参考 web.extensions(我使用 .Net 框架 4.5)

        【讨论】:

        • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多