Namespace untuk [DataContract]

230

Saya tidak dapat menemukan namespace untuk digunakan [DataContract]dan [DataMember]elemen. Menurut apa yang saya temukan, tampaknya menambahkan berikut ini sudah cukup, tetapi dalam kasus saya tidak.

using System;
using System.Runtime.Serialization;

Berikut ini cuplikan kode saya:

using System;
using System.Runtime.Serialization;

namespace MyNamespace {

    [DataContract]
    public class Tuple<T1, T2> {
            // A custom implementation of a Tuple
            //...
            //...
        }
}

Dan kesalahan yang saya dapatkan:

Tipe atau nama namespace 'DataContract' tidak dapat ditemukan (apakah Anda melewatkan arahan menggunakan atau referensi rakitan?)

Apakah saya tidak menggunakan ruang nama yang tepat?

Otiel
sumber
Menggunakan VS 2017, kesalahan kompiler, tidak dapat membangun, tidak ada pesan dalam daftar kesalahan atau indikasi apa pun. Tidak ada pewarnaan sintaks dari DataContract, tidak ada.
dudeNumber4
@ dudeNumber4 Klik kanan pada Add / Referensi proyek Anda. Dalam dialog menemukan System.Runtime.Serialisasi dan membuat kotak centang cheked state. Kemudian Tekan "Oke"
Sim Mak

Jawaban:

433

DataContractAttributeKelas ada di System.Runtime.Serializationnamespace.

Anda harus menambahkan referensi ke System.Runtime.Serialization.dll. Majelis itu tidak dirujuk secara default. Untuk menambahkan referensi ke proyek Anda, Anda harus pergi ke Referensi -> Tambah Referensi di Solution Explorer dan tambahkan referensi perakitan secara manual.

CD..
sumber
59
.... dan perakitan itu tidak direferensikan secara default, jadi Anda harus masuk ke References -> Add ReferenceSolution Explorer dan menambahkan referensi perakitan ...
marc_s
11
Itu saja, saya tidak punya referensi dalam solusi saya! Saya pikir jika diperlukan referensi, itu akan membuat saya kesalahan di telepon using System.Runtime.Serialization;. Saya kira saya salah :)
Otiel
2
Ugh. Mengapa di Bumi itu tidak salah pada usingpernyataan itu? Itu sepertinya masuk akal bagi saya.
Yatrix
7
Saya kira itu karena dll lain menggunakan namespace itu (kalau tidak Anda akan mendapatkan kesalahan)
Gui
4
Terima kasih! Tidak ada satu pun contoh Microsoft yang menyebutkan ini.
BobRodes
5

Atribut [DataContract] dan [DataMember] ditemukan di namespace System.ServiceModel yang ada di System.ServiceModel.dll.

System.ServiceModel menggunakan System dan System.Runtime.Serialization namespaces untuk membuat cerita bersambung data.

Jatin Khurana
sumber
5

Di studio visual untuk .Net 4.0 framework,

  1. Coba tambahkan referensi baru ke proyek.
  2. Pada Tab .Net, Cari System.Runtime.Serialization.
  3. Sekarang, Anda bisa menggunakannya using System.Runtime.Serialization. Dan kesalahan tidak akan ditampilkan.
Md Kauser Ahmmed
sumber
0

Pertama, saya menambahkan referensi ke Model saya, lalu saya menggunakannya dalam kode saya. Ada dua referensi yang harus Anda tambahkan:

menggunakan System.ServiceModel;
menggunakan System.Runtime.Serialisasi;

kemudian, masalah ini diselesaikan di program saya. Saya harap jawaban ini dapat membantu Anda. Terima kasih.

pengguna3342169
sumber
0

Saya memecahkan masalah ini dengan menambahkan C: \ Program Files (x86) \ Assemblies Referensi \ Microsoft \ Framework.NETFramework \ v4.0 \ System.Runtime.Serialization.dll dalam referensi

Putar Roda
sumber