Je ne trouve pas l'espace de noms à utiliser pour les éléments [DataContract]
et [DataMember]
. D'après ce que j'ai trouvé, il semble que l'ajout de ce qui suit devrait être suffisant, mais dans mon cas, ce n'est pas le cas.
using System;
using System.Runtime.Serialization;
Voici un extrait de mon code:
using System;
using System.Runtime.Serialization;
namespace MyNamespace {
[DataContract]
public class Tuple<T1, T2> {
// A custom implementation of a Tuple
//...
//...
}
}
Et l'erreur que j'obtiens:
Le type ou le nom de l'espace de noms 'DataContract' est introuvable (manque-t-il une directive using ou une référence d'assembly?)
Suis-je pas en utilisant les bons espaces de noms?
c#
wcf
datacontract
Otiel
la source
la source
Réponses:
DataContractAttribute
La classe est dans l'System.Runtime.Serialization
espace de noms.Vous devez ajouter une référence à
System.Runtime.Serialization.dll
. Cet assemblage n'est cependant pas référencé par défaut. Pour ajouter la référence à votre projet, vous devez aller dans Références -> Ajouter une référence dans l'Explorateur de solutions et ajouter une référence d'assemblage manuellement.la source
References -> Add Reference
dans l'Explorateur de solutions et ajouter une référence d'assembly ...using System.Runtime.Serialization;
. Je suppose que j'avais tort :)using
déclaration? Cela me semble logique.http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractattribute.aspx
DataContractAttribute se trouve dans l'espace de noms System.Runtime.Serialization et vous devez référencer System.Runtime.Serialization.dll. Il n'est disponible qu'en .Net> = 3
la source
Les attributs [DataContract] et [DataMember] se trouvent dans l'espace de noms System.ServiceModel qui se trouve dans System.ServiceModel.dll.
System.ServiceModel utilise les espaces de noms System et System.Runtime.Serialization pour sérialiser les membres de données.
la source
Dans Visual Studio pour le framework .Net 4.0,
System.Runtime.Serialization
.using System.Runtime.Serialization
. Et l'erreur ne sera pas affichée.la source
Tout d'abord, j'ajoute les références à mon modèle, puis je les utilise dans mon code. Vous devez ajouter deux références:
ensuite, ce problème a été résolu dans mon programme. J'espère que cette réponse pourra vous aider. Merci.
la source
J'ai résolu ce problème en ajoutant C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ System.Runtime.Serialization.dll dans la référence
la source