我找不到用于[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指令或程序集引用?)
我没有使用正确的命名空间吗?
答案 0 :(得分:416)
DataContractAttribute
类位于System.Runtime.Serialization
命名空间中。
您应该添加对System.Runtime.Serialization.dll
的引用。但是默认情况下不会引用该程序集。要添加对项目的引用,您必须转到引用 - &gt;在Solution Explorer中添加Reference并手动添加程序集引用。
答案 1 :(得分:7)
http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractattribute.aspx
DataContractAttribute位于System.Runtime.Serialization命名空间中,您应该引用System.Runtime.Serialization.dll。它仅适用于.Net&gt; = 3
答案 2 :(得分:5)
[DataContract]和[DataMember]属性位于System.ServiceModel.dll中的System.ServiceModel命名空间中。
System.ServiceModel使用System和System.Runtime.Serialization命名空间来序列化数据成员。
答案 3 :(得分:4)
在Visual Studio for .Net 4.0框架中,
System.Runtime.Serialization
。 using System.Runtime.Serialization
。并且不会显示错误。 答案 4 :(得分:0)
首先,我添加对我的模型的引用,然后在我的代码中使用它们。您应该添加两个参考:
使用System.ServiceModel;
使用System.Runtime.Serialization;
然后,这个问题在我的程序中得到了解决。我希望这个答案可以帮到你。感谢。
答案 5 :(得分:0)
我通过在参考中添加C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ System.Runtime.Serialization.dll来解决此问题