[DataContract]的命名空间

本文关键字:命名空间 DataContract | 更新日期: 2023-09-27 18:08:21

我找不到用于[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指令或程序集引用?)

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

[DataContract]的命名空间

DataContractAttribute"class"在"System.Runtime.Serialization"命名空间。

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

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

DataContractAttribute在System.Runtime.Serialization命名空间中,你应该引用System.Runtime.Serialization.dll。它只在。net中可用>= 3

在visual studio for .Net 4.0框架中,

  1. 尝试向项目添加新引用。
  2. 在。net选项卡中搜索System.Runtime.Serialization
  3. 现在可以使用using System.Runtime.Serialization。错误不会显示出来。

在System中找到[DataContract]和[DataMember]属性。ServiceModel.dll中的ServiceModel命名空间。

系统。ServiceModel使用System和System. runtime . serialization命名空间来序列化数据成员。

我通过在参考

中添加C:'Program Files (x86)'Reference Assemblies'Microsoft'Framework.NETFramework'v4.0' system . runtime . serialize .dll来解决此问题。

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

使用System.ServiceModel

,
使用System.Runtime.Serialization;

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