[DataContract]的命名空间

Oti*_*iel 229 c# wcf datacontract

我找不到要用于[DataContract][DataMember]元素的命名空间.根据我发现的,似乎添加以下内容应该足够了,但在我的情况下它不是.

using System;
using System.Runtime.Serialization;
Run Code Online (Sandbox Code Playgroud)

这是我的代码片段:

using System;
using System.Runtime.Serialization;

namespace MyNamespace {

    [DataContract]
    public class Tuple<T1, T2> {
            // A custom implementation of a Tuple
            //...
            //...
        }
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误:

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

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

CD.*_*D.. 426

DataContractAttribute类在System.Runtime.Serialization命名空间中.

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

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

Gui*_*ume 7

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

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


Jat*_*ana 5

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

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


小智 5

在.NET 4.0框架的Visual Studio中,

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