Nie mogę znaleźć przestrzeni nazw [DataContract]
i [DataMember]
elementów. Zgodnie z tym, co znalazłem, wydaje się, że dodanie poniższych powinno wystarczyć, ale w moim przypadku tak nie jest.
using System;
using System.Runtime.Serialization;
Oto fragment mojego kodu:
using System;
using System.Runtime.Serialization;
namespace MyNamespace {
[DataContract]
public class Tuple<T1, T2> {
// A custom implementation of a Tuple
//...
//...
}
}
I pojawia się błąd:
Nie można znaleźć nazwy typu lub przestrzeni nazw „DataContract” (brakuje dyrektywy używającej lub odwołania do zestawu?)
Czy nie używam odpowiednich przestrzeni nazw?
c#
wcf
datacontract
Otiel
źródło
źródło
Odpowiedzi:
DataContractAttribute
Klasa znajduje się wSystem.Runtime.Serialization
przestrzeni nazw.Powinieneś dodać odniesienie do
System.Runtime.Serialization.dll
. Do tego zestawu nie ma jednak domyślnego odniesienia. Aby dodać odniesienie do projektu, musisz przejść do Odnośniki -> Dodaj odniesienie w Eksploratorze rozwiązań i ręcznie dodać odwołanie do zespołu.źródło
References -> Add Reference
using System.Runtime.Serialization;
. Chyba się myliłem :)using
oświadczeniu? To wydaje mi się mieć sens.http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractattribute.aspx
DataContractAttribute znajduje się w przestrzeni nazw System.Runtime.Serialization i powinieneś odwoływać się do System.Runtime.Serialization.dll. Jest dostępny tylko w .Net> = 3
źródło
Atrybuty [DataContract] i [DataMember] znajdują się w przestrzeni nazw System.ServiceModel, która znajduje się w System.ServiceModel.dll.
System.ServiceModel używa przestrzeni nazw System i System.Runtime.Serialization do serializacji członków danych.
źródło
W Visual Studio dla środowiska .Net 4.0
System.Runtime.Serialization
.using System.Runtime.Serialization
. Błąd nie zostanie wyświetlony.źródło
Najpierw dodaję odniesienia do mojego modelu, a następnie używam ich w kodzie. Należy dodać dwa odniesienia:
problem został rozwiązany w moim programie. Mam nadzieję, że ta odpowiedź może ci pomóc. Dzięki.
źródło
Rozwiązałem ten problem, dodając do odwołania C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ System.Runtime.Serialization.dll
źródło