[DataContract]的命名空间

问题描述 投票:222回答:6

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

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

c# wcf datacontract
6个回答
420
投票

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

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


7
投票

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

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


5
投票

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

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


5
投票

在visual studio for .Net 4.0框架中,

  1. 尝试添加对项目的新引用。
  2. 在.Net标签上,搜索System.Runtime.Serialization
  3. 现在,你可以使用using System.Runtime.Serialization。并且不会显示错误。

0
投票

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

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

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.