Namespace for [DataContract]
Solution 1
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.
Solution 2
In visual studio for .Net 4.0 framework,
- Try to add new reference to project.
- On .Net Tab, Search
System.Runtime.Serialization
. - Now, you can use
using System.Runtime.Serialization
. And the error will not be shown.
Solution 3
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
Solution 4
[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.
Solution 5
I solved this problem by adding C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Runtime.Serialization.dll in the reference
Related videos on Youtube
Otiel
Profile picture credits: http://codegolf.stackexchange.com/a/22326/14595
Updated on April 16, 2020Comments
-
Otiel about 4 years
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?
-
dudeNumber4 about 7 yearsUsing VS 2017, compiler error, can't build, no message in errors list or any indication at all. No syntax coloring of DataContract, nothing.
-
Sim Mak almost 7 years@dudeNumber4 Right click on your project Add/Reference. In the dialog find System.Runtime.Serialization and make checkbox cheked state. Then Press "Ok"
-
-
marc_s over 12 years....and that assembly isn't referenced by default, so you have to go to
References -> Add Reference
in Solution Explorer and add an assembly reference... -
Otiel over 12 yearsThat's it, I didn't have the reference in my solution! I thought that if a reference were needed, it would get me an error on the line
using System.Runtime.Serialization;
. I guess I was wrong :) -
Yatrix almost 11 yearsUgh. Why on Earth doesn't it error on the
using
statement? That seems to make sense to me. -
Gui almost 11 yearsI guess that's because another dll is using that namespace (otherwise you would get an error)
-
BobRodes over 10 yearsThank you! None of Microsoft's example doc mentions this.
-
GreySage over 4 yearsIf you are using VisualStudio you'll need to exit VS and reopen it before it will recognize newly referenced packages.