I can't find the namespace to use for [DataContract]
and [DataMember]
elements. According to what I've found, it seems that adding the following should be enough, but in my case it is not.
using System;
using System.Runtime.Serialization;
Here is a snippet of my code:
using System;
using System.Runtime.Serialization;
namespace MyNamespace {
[DataContract]
public class Tuple<T1, T2> {
// A custom implementation of a Tuple
//...
//...
}
}
And the error I get:
The type or namespace name 'DataContract' could not be found (are you missing a using directive or an assembly reference?)
Am I not using the right namespaces?
DataContractAttribute
Class is in the System.Runtime.Serialization
namespace.
You should add a reference to System.Runtime.Serialization.dll
. That assembly isn't referenced by default though. To add the reference to your project you have to go to References -> Add Reference in the Solution Explorer and add an assembly reference manually.
http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractattribute.aspx
DataContractAttribute is in System.Runtime.Serialization namespace and you should reference System.Runtime.Serialization.dll. It's only available in .Net >= 3
[DataContract] and [DataMember] attribute are found in System.ServiceModel namespace which is in System.ServiceModel.dll .
System.ServiceModel uses the System and System.Runtime.Serialization namespaces to serialize the datamembers.
In visual studio for .Net 4.0 framework,
System.Runtime.Serialization
. using System.Runtime.Serialization
. And the error will not be shown. First, I add the references to my Model, then I use them in my code. There are two references you should add:
using System.ServiceModel;
using System.Runtime.Serialization;
then, this problem was solved in my program. I hope this answer can help you. Thanks.
我通过在引用中添加C:\\ Program Files(x86)\\ Reference Assemblies \\ Microsoft \\ Framework.NETFramework \\ v4.0 \\ System.Runtime.Serialization.dll解决了这个问题
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.