ChatGPT解决这个技术问题 Extra ChatGPT

[DataContract] 的命名空间

我找不到用于 [DataContract][DataMember] 元素的命名空间。根据我的发现,似乎添加以下内容就足够了,但在我的情况下并非如此。

using System;
using System.Runtime.Serialization;

这是我的代码片段:

using System;
using System.Runtime.Serialization;

namespace MyNamespace {

    [DataContract]
    public class Tuple<T1, T2> {
            // A custom implementation of a Tuple
            //...
            //...
        }
}

我得到的错误是:

找不到类型或命名空间名称“DataContract”(您是否缺少 using 指令或程序集引用?)

我没有使用正确的命名空间吗?

使用 VS 2017,编译器错误,无法构建,错误列表中没有消息或任何指示。 DataContract 没有语法着色,什么都没有。
@dudeNumber4 右键单击您的项目添加/引用。在对话框中找到 System.Runtime.Serialization 并使复选框处于选中状态。然后按“确定”

D
Daniel

DataContractAttribute 类位于 System.Runtime.Serialization 命名空间中。

您应该添加对 System.Runtime.Serialization.dll 的引用。但是,默认情况下不引用该程序集。要将引用添加到您的项目,您必须转到 References ->在解决方案资源管理器中添加引用并手动添加程序集引用。


....默认情况下不引用该程序集,因此您必须转到解决方案资源管理器中的 References -> Add Reference 并添加程序集引用...
就是这样,我的解决方案中没有参考!我认为如果需要引用,它会在 using System.Runtime.Serialization; 行上给我一个错误。我想我错了:)
啊。为什么它不会在 using 语句中出错?这对我来说似乎很有意义。
我猜那是因为另一个 dll 正在使用该命名空间(否则你会得到一个错误)
谢谢!微软的示例文档都没有提到这一点。
G
Guillaume

http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractattribute.aspx

DataContractAttribute 位于 System.Runtime.Serialization 命名空间中,您应该引用 System.Runtime.Serialization.dll。它仅在 .Net >= 3 中可用


M
Md Kauser Ahmmed

在 .Net 4.0 框架的视觉工作室中,

尝试添加对项目的新引用。在 .Net 选项卡上,搜索 System.Runtime.Serialization。现在,您可以使用 System.Runtime.Serialization。并且不会显示错误。


J
Jatin Khurana

[DataContract] 和 [DataMember] 属性位于 System.ServiceModel.dll 中的 System.ServiceModel 命名空间中。

System.ServiceModel 使用 System 和 System.Runtime.Serialization 命名空间来序列化数据成员。


R
RotatingWheel

我通过在参考中添加 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Runtime.Serialization.dll 解决了这个问题


B
Barney Szabolcs

首先,我添加对我的模型的引用,然后在我的代码中使用它们。您应该添加两个参考:

使用 System.ServiceModel;使用 System.Runtime.Serialization;

然后,这个问题在我的程序中得到了解决。我希望这个答案可以帮助你。谢谢。


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅