【问题标题】:Why can't I reference System.Runtime.Serialization.Json in C#为什么我不能在 C# 中引用 System.Runtime.Serialization.Json
【发布时间】:2014-04-10 22:16:12
【问题描述】:

我想使用 API 从 interwebz 获取信息。 API 以 Json 格式返回数据。

  1. 我正在运行 Microsoft Visual Studio C# 2010 Express 添加。
  2. 看来我已将 .NET Framework 4 客户端配置文件设置为我的 “目标框架”,但老实说我不确定这是什么 意思。
  3. 这是一个 Windows 窗体应用程序...

没有太多代码要显示,因为如果没有适当的 using 语句,我就无法真正开始......

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Net;
using System.Runtime.Serialization.Json;

我收到此错误:

命名空间中不存在类型或命名空间名称“Json” 'System.Runtime.Serialization'(您是否缺少程序集 参考?)

我是否缺少 DLL 文件或其他内容?根据我数小时徒劳地寻找解决方案,我了解到 .NET 4.xx 应该已经具备解析 Json 格式字符串所需的工具?

【问题讨论】:

标签: c# json api using-statement


【解决方案1】:

System.Runtime.Serialization.Json 命名空间位于两个不同的 DLL 中,具体取决于您的 .net 框架。

在 .NET 3.5 中是在 System.ServiceModel.Web.dll 中

在 .NET 4.0 及更高版本中它位于 System.Runtime.Serialization.dll 中。

确保您在项目中添加了正确的 DLL 作为引用,并将 using System.Runtime.Serialization.Json; 添加到代码文件的顶部。

编辑 - 考虑使用 JSON.NET

即使 .NET 框架提供了自己的 JSON 序列化和反序列化命名空间(DataContractJsonSerializer 和 JavaScriptSerializer),您也应该调查一下使用 JSON.NET 是否会更好。

JSON.NET 更易于使用、性能更好且功能更多。 http://www.newtonsoft.com/json/help/html/JsonNetVsDotNetSerializers.htm

【讨论】:

  • @CathIMF - 我在 .NET 2.0 中遇到了类似的问题,我应该添加哪个 dll?
  • @RSB 这些命名空间在 .NET 2.0 中不可用。您需要使用 3rd 方库,例如 JSON.NET。这个答案中有一个链接。
  • @CathalMF 感谢您的快速回复。
  • 截至 2021 年,我会考虑将 System.Text.Json NuGet 包添加到此答案中,因为它的下载量远远超过 JSON.NET 并由 Microsoft 编写。需要 .NET 版本高于 4.6.1。
【解决方案2】:

您需要从引用中导入 System.Runtime.Serialization dll

【讨论】:

  • 有时你找不到 System.Runtime.Serialization.Json !!
【解决方案3】:

您需要添加对项目的引用。

在解决方案资源管理器中右键单击引用,然后添加引用。您将看到一个 DLL 列表,并且您必须选中您需要将其添加到项目中的那个旁边的框。完成此操作后,您可以成功添加 using 语句。

希望有帮助!

【讨论】:

    【解决方案4】:

    从C#序列化和反序列化JSON的一般流程是:

    添加对 System.Runtime.Serialization 库的引用。

    为 System.Runtime.Serialization 和 System.Runtime.Serialization.Json 添加 using 指令。

    【讨论】:

      【解决方案5】:

      请将您的 Target framework.NET Framework 4 Client Profile 更改为 .NET Framework 4

      【讨论】:

      • 这没有回答问题。
      猜你喜欢
      • 1970-01-01
      • 2012-04-27
      • 2015-09-03
      • 2010-12-05
      • 2010-10-08
      • 2014-07-25
      • 1970-01-01
      • 2011-01-14
      相关资源
      最近更新 更多