Saya mencoba menggunakan DataAnnotations di proyek WPF saya untuk menentukan panjang string maksimum, dengan yang berikut ini:
using System.ComponentModel.DataAnnotations;
Namun, saya mendapatkan kesalahannya
Jenis atau nama namespace 'DataAnnotations' tidak ada di namespace 'System.ComponentModel' (apakah Anda kehilangan referensi perakitan?)
Saya telah melihat contoh lain yang DataAnnotations
memang ada di namespace ini. Saya menggunakan C # 4. Apakah ada alasan mengapa saya tidak dapat menggunakan ini? Apa yang dapat saya lakukan untuk memperbaikinya?
c#
wpf
data-annotations
DaveDev
sumber
sumber
System.ComponentModel
dan menggunakan berbagai komponen lain di dalamnya. Menurut @Hari di bawah ini, nampaknya ituDataAnnotations
ada di majelisnya sendiri. Saya pikir itu akan ada di dalamSystem.ComponentModel
karena di namespace yang sama.Jawaban:
Anda harus mereferensikan assembly di mana namespace ini ditentukan (tidak direferensikan secara default di template visual studio). Buka manajer referensi Anda dan tambahkan referensi ke rakitan System.ComponentModel.DataAnnotations (Penjelajah solusi -> Tambahkan referensi -> Pilih tab .Net -> pilih System.ComponentModel.DataAnnotations dari daftar)
sumber
Jika menggunakan .NET Core atau .NET Standard
menggunakan:
dari pada:
sumber
dotnet add package System.ComponentModel.Annotations
Untuk Referensi System.ComponentModel.DataAnnotations
Dalam file kode memiliki Using System.ComponentModel.DataAnnotations; di bagian atas file seperti:
using System.ComponentModel.DataAnnotations;
Tambahkan referensi .NET ke proyek Anda dengan mengklik kanan proyek di penjelajah solusi:
Semoga ini membantu! Pertanyaan ini membantu saya.
sumber
Jika Anda tidak memilikinya dalam referensi (seperti saya tidak) Anda juga dapat menambahkan NuGet System.ComponentModel.Annotations untuk mendapatkan rakitan dan mengatasi kesalahan. (Menambahkannya di sini karena jawaban ini masih teratas dari Google karena kesalahannya)
sumber
Saya juga mengalami masalah yang sama dan saya menyelesaikannya dengan menambahkan referensi di salah satu proyek saya yang tidak memiliki referensi yang disebutkan. Jika Anda memiliki 2-3 proyek dalam solusi Anda, periksa dengan menambahkan referensi ini ke proyek lain.
sumber
Gunakan FrameWork versi 4.5 dan yang lebih baru untuk proyek Anda, maka masalah terselesaikan. Karena namespace ini di bawah 4.5 ke atas.
sumber
Saya menemukan bahwa saya tidak dapat merujuk System.ComponentModel.DataAnnotations dari Silverlight 5 dengan versi di bawah ini pada (1). Saya menemukan bahwa rakitan Silverlight 5 tidak dapat menggunakan rakitan .NET, ini memberikan kesalahan "Anda tidak dapat menambahkan referensi ke System.ComponentModel.DataAnnotations karena tidak dibangun terhadap runtime Silverlight. ..." Saya berencana untuk mengatasinya dengan semoga menginstal paket Silverlight 5 yang ada di (2) di bawah ini. Jika gagal saya akan memperbarui posting ini.
[UPDATE: gagal. Saya menginstal semua yang berkaitan dengan Silverlight 5 dan saya tidak memiliki versi Silverlight dari perakitan System.ComponentModel.DataAnnotations .dll. Sangat buruk. PEMBARUAN II: Saya menemukan .dll lama memiliki nama ini dari penginstalan sebelumnya dari kit pengembang Silverlight untuk Visual Studio 2008 atau 2010. Saya menambahkan file ini dan tampaknya 'berfungsi', di IntelliSense sekarang mengenali atribut pada anggota kelas, seperti
[Display(Name = "My Property Name")].
Apakah ini berfungsi untuk semua hal lain dalam .dll ini, saya tidak tahu.](1)
Microsoft Visual Studio Professional 2013 Version 12.0.21005.1 REL Microsoft .NET Framework Version 4.5.51641
Versi Terpasang: Profesional
(2) http://go.microsoft.com/fwlink/?LinkId=229318
sumber
Saya mencari bantuan tentang topik ini ketika saya menemukan masalah yang sama.
Meskipun yang berikut ini mungkin bukan Jawaban untuk pertanyaan yang awalnya diajukan pada tahun 2012, ini mungkin solusi bagi mereka yang menemukan utas ini.
Cara untuk mengatasinya adalah dengan memeriksa di mana proyek Anda berada dalam solusi. Ternyata untuk contoh saya (saya mencoba menginstal paket NuGet tetapi tidak berhasil dan kesalahan yang tercantum muncul) bahwa file proyek saya tidak termasuk dalam direktori solusi meskipun ditampilkan di penjelajah solusi. Saya menghapus proyek dari direktori di luar ruang lingkup dan menambahkan kembali proyek tetapi kali ini dalam lokasi yang benar.
sumber
This error occurs when the reference to the "System.dll" got removed.Solution to the problem is very simple add the reference to "System.dll".The dll is normally available in the following location "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727" .Add the reference your problem will get solved .
sumber
Jika Anda mencoba memperbarui studio visual dari vs2008 ke vs2010. Dan aplikasi Anda menggunakan framework 3.5 (dan Anda tidak ingin memutakhirkannya), dan juga menggunakan Layanan WCF RIA BETA ... Saya punya berita buruk ... Anda HARUS meningkatkan ke Layanan WCF RIA v1 (BETA tidak berfungsi pada vs2010 ) ... dan karena ini ... Anda juga harus menginstal Silverlight 4 + upgrade ke framework 4.0
Lihat ini: http://blog.nappisite.com/2010/05/updating-visual-studio-2008net-35-ria.html
sumber
Saya meningkatkan dari Silverlight 4 ke Silverlight 5 dan kemudian saya mengalami masalah ini. Meskipun saya memiliki referensi ke "System.ComponentModel.DataAnnotations" di bawah "Referensi" dalam proyek saya, itu memiliki tanda hasil kuning yang menunjukkan rakitan yang direferensikan sebelumnya tidak dapat ditemukan. Ternyata properti dari referensi "System.ComponentModel.DataAnnotations" menunjukkan "Versi Spesifik = Benar", ketika saya mengubahnya menjadi "Versi Spesifik = Salah" itu memperbaiki masalah. Klik kanan pada rakitan "System.ComponentModel.DataAnnotations" di bawah "Referensi" dan pilih "Properti" dari menu konteks. Periksa bahwa nilai properti untuk "Versi Spesifik = Salah".
Itu pasti mengacu pada rakitan Silverlight 4 lama yang tidak lagi tersedia setelah peningkatan ke Silverlight 5.
sumber
System.ComponentModel.DataAnnotations terdapat dalam rakitannya sendiri sehingga Anda perlu memastikan bahwa Anda telah merujuknya. Sederhananya:
1). Klik kanan pada Soloution dan pilih tambahkan.
2). Pilih referensi dari daftar.
3). Cari "System.ComponentModel.DataAnnotation" dan centang kotak di sebelah kiri dan tekan ok.
Pekerjaan selesai, seharusnya tidak ada kesalahan referensi apa pun.
sumber
Saya juga punya masalah ini. Itu sangat bodoh ketika saya menambahkan namespace yang sama dengan Sistem. Saya mencoba untuk menghapus semua referensi, tetapi tidak terselesaikan. Saya menggunakan "global :: System.ComponentModel", ini bekerja dengan baik. Ketika saya menghapus namespace saya, masalah ini telah teratasi.
sumber
Saya memiliki masalah yang sama, saya menyelesaikan masalah ini dengan cara berikut.
Klik kanan pada halaman, pilih Properti. dalam membangun tindakan pilih Konten.
Semoga solusi ini dapat membantu Anda.
sumber