Je ne trouve pas l'espace de noms à utiliser pour les éléments [DataContract]
et [DataMember]
. D'après ce que j'ai découvert, il semble que l'ajout de ce qui suit devrait suffire, 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 je reçois:
Le type ou le nom de l'espace de noms 'DataContract' est introuvable (vous manque une directive using ou une référence Assembly?)
Est-ce que je n'utilise pas les bons espaces de noms?
DataContractAttribute
La classe est dans l'espace de noms System.Runtime.Serialization
.
Vous devez ajouter une référence à System.Runtime.Serialization.dll
. Cette assemblée n'est cependant pas référencée par défaut. Pour ajouter la référence à votre projet, vous devez accéder à Références -> Ajouter une référence dans l'Explorateur de solutions et ajouter une référence d'assemblage manuellement.
http://msdn.Microsoft.com/en-us/library/system.runtime.serialization.datacontractattribute.aspx
DataContractAttribute est dans l'espace de noms System.Runtime.Serialization et vous devez référencer System.Runtime.Serialization.dll. Il est uniquement disponible en .Net> = 3
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.
Dans Visual Studio pour .NET 4.0 Framework,
System.Runtime.Serialization
.using System.Runtime.Serialization
. Et l'erreur ne sera pas affichée.Tout d'abord, j'ajoute les références à mon modèle, puis je les utilise dans mon code. Il y a deux références que vous devriez ajouter:
using System.ServiceModel;
using System.Runtime.Serialization;
alors, ce problème a été résolu dans mon programme. J'espère que cette réponse peut vous aider. Merci.
J'ai résolu ce problème en ajoutant C:\Program Files (x86)\Assemblys de référence\Microsoft\Framework.NETFramework\v4.0\System.Runtime.Serialization.dll dans la référence