2012-04-16 11 views
60

मैं स्ट्रिंग की अधिकतम लंबाई निर्दिष्ट करने के लिए मेरी WPF परियोजना में DataAnnotations उपयोग करने के लिए कोशिश कर रहा हूँ निम्नलिखित के साथ:मैं System.ComponentModel.DataAnnotations का संदर्भ क्यों नहीं दे सकता?

using System.ComponentModel.DataAnnotations; 

हालांकि, मैं त्रुटि

प्रकार या नाम स्थान नाम ' DataAnnotations ' नाम स्थान में मौजूद नहीं है' System.ComponentModel '(आप एक विधानसभा संदर्भ याद कर रहे हैं?)

मैंने देखा है अन्य उदाहरण क इस नामस्थान में DataAnnotations मौजूद है। मैं सी # 4 का उपयोग कर रहा हूँ। क्या कोई कारण है कि मैं इसका उपयोग नहीं कर सकता? इसे ठीक करने के लिए मुझे क्या करना होगा?

+0

क्या आपके पास एमवीसी स्थापित है? मेरा मानना ​​है कि DataAnnotations उस पैकेज से संबंधित है – dougajmcdonald

+3

शायद आप "एक असेंबली संदर्भ गायब हैं।" – phoog

+1

त्रुटि संदेशों को मददगार बनाने के लिए डिज़ाइन किया गया है, अनदेखा नहीं किया जाना चाहिए। –

उत्तर

120

आपको उस असेंबली को संदर्भित करना है जिसमें यह नामस्थान परिभाषित किया गया है (इसे विजुअल स्टूडियो टेम्पलेट्स में डिफ़ॉल्ट रूप से संदर्भित नहीं किया गया है)। अपने संदर्भ प्रबंधक को खोलें और System.ComponentModel.DataAnnotations असेंबली (समाधान एक्सप्लोरर -> संदर्भ जोड़ें -> .NET टैब का चयन करें -> सिस्टम का चयन करें। कॉम्पोनेंट मॉडेल .डेटा सूची से डेटा) नोट्स

+2

यहां अजीब बात यह है कि वीएस मुझे इस के लिए सामान्य 'संभावित फिक्स' देने में सक्षम नहीं था। आश्चर्य क्यों ... –

-5

मुझे एक ही समस्या थी, मैंने इस समस्या को हल करके हल किया।

पृष्ठ पर राइट क्लिक करें, संपत्ति का चयन करें। निर्माण कार्रवाई में सामग्री का चयन करें।

आशा है कि यह समाधान आपकी मदद कर सकता है।

+0

आप किस "पृष्ठ" का जिक्र कर रहे हैं? और यह वास्तव में कैसे मदद करता है? – Crono

+0

अच्छा, यह वास्तव में गलत है। यदि आप निर्माण के दौरान एक परियोजना तत्व को "सामग्री" के रूप में माना जाता है, तो यह उसका व्यवहार खो देगा। तो यदि आप इसे कक्षा में करते हैं, तो इसे अब संकलित नहीं किया जाएगा और यह कोड कभी नहीं कहा जाएगा। इसके बजाय इसे प्रोग्राम संकलन आउटपुट की बाइनरी के साथ एक फाइल के रूप में कॉपी किया जाएगा। यही कारण है कि आप संकलन त्रुटियों को प्राप्त करना बंद कर देंगे, लेकिन यह निश्चित रूप से संकलन समस्या का समाधान नहीं है। –

0

यदि आपने बनाम 2008 से बनाम 2010 तक दृश्य स्टूडियो को अपडेट करने का प्रयास किया है। और आपका ऐप फ्रेमवर्क 3.5 का उपयोग करता है (और आप इसे अपग्रेड नहीं करना चाहते हैं), और डब्ल्यूसीएफ आरआईए सर्विसेज बीटा का भी इस्तेमाल किया ... मेरे पास बुरी खबर है ... आपको डब्लूसीएफ आरआईए सर्विसेज v1 में अपग्रेड करना होगा (बीटा बनाम 2010 पर काम नहीं करता है http://blog.nappisite.com/2010/05/updating-visual-studio-2008net-35-ria.html

2

उपयोग ढांचा संस्करण 4.5 और इसके बाद के संस्करण अपनी परियोजना के लिए तो समस्या हल हो:) ... और इस की वजह से है ... आप भी सिल्वरलाइट 4 स्थापित करने के लिए + ढांचा 4.0

में नवीनीकृत इस देखें है। क्योंकि यह नामस्थान 4.5 वर्ष से ऊपर है।

+1

यह गलत है। [यहां] देखें (https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations (v = vs.100) .aspx) – itsho

+0

मैं .NET 4.5.x का उपयोग कर रहा हूं और इसमें शामिल नहीं है । लेकिन, तो मैं एमवीसी का उपयोग नहीं कर रहा हूँ। यह ऐप एक यूआई के साथ एक कंसोल ऐप है जो दिन में एक बार क्रॉन नौकरी के रूप में चलाया जाएगा। मैं केवल उन वर्गों में DataAnnotations का उपयोग करना चाहता हूं जो डेटा सदस्यों का प्रतिनिधित्व करते हैं जो प्रत्येक SQL सर्वर तालिका पंक्ति से पुनर्प्राप्त कॉलम से डेटा धारण करेंगे। मैं इसे संदर्भ के रूप में मैन्युअल रूप से जोड़ने का प्रयास करूंगा। – MiddleAgedMutantNinjaProgrammer

+0

इस पर एक नज़र डालें; [यहां] (https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations (v = vs.110) .aspx # इंटरफेस) – user2090762

5

संदर्भ System.ComponentModel.DataAnnotations

System.ComponentModel.DataAnnotations का उपयोग करने के लिए एक कोड फ़ाइल में करने के लिए ;

using System.ComponentModel.DataAnnotations; 

सही समाधान एक्सप्लोरर में परियोजना पर क्लिक करके अपने प्रोजेक्ट में कोई .NET संदर्भ जोड़ें:

enter image description here

आशा इस मदद करता है जैसे फ़ाइल के शीर्ष पर! इस सवाल ने मेरी मदद की।

2

मुझे पता चला कि मैं सिल्वरलाइट 5 से सिस्टम (कॉम्पोनेंट मॉडेल। डेटा एनाटेशन को नीचे दिए गए संस्करण के साथ (1) पर संदर्भित नहीं कर सकता। मैंने पाया कि सिल्वरलाइट 5 असेंबली .NET असेंबली का उपयोग नहीं कर सकते हैं, यह त्रुटि देता है "आप System.ComponentModel.DataAnnotations का संदर्भ नहीं जोड़ सकते क्योंकि यह सिल्वरलाइट रनटाइम के खिलाफ नहीं बनाया गया था ..." मैं इसे काम करने की योजना बना रहा हूं उम्मीद है कि नीचे (2) पर मिले सिल्वरलाइट 5 पैकेज को स्थापित करना। अगर यह विफल रहता है तो मैं इस पोस्ट को अपडेट कर दूंगा।

[अद्यतन: यह असफल रहा। मैंने सिल्वरलाइट 5 से संबंधित सबकुछ स्थापित किया है और मेरे पास .dll असेंबली सिस्टम का Silverlight संस्करण नहीं है। कॉम्पोनेंट मॉडेल। डेटाएनोटेशन। बहुत बुरा। अद्यतन द्वितीय: मुझे विजुअल स्टूडियो 2008 या 2010 के लिए सिल्वरलाइट डेवलपर की किट की पिछली स्थापना से यह नाम पुराना मिला। मैंने इस फ़ाइल को जोड़ा और ऐसा लगता है कि इंटेलिसेन्स अब वर्ग के सदस्यों पर विशेषताओं को पहचान रहा है, जैसे [Display(Name = "My Property Name")]. या नहीं, यह इस में सब कुछ मैं नहीं जानता कि .dll लिए काम करता है]

(1)

Microsoft Visual Studio Professional 2013 
Version 12.0.21005.1 REL 
Microsoft .NET Framework 
Version 4.5.51641 

स्थापित संस्करण:। व्यावसायिक

(2) http://go.microsoft.com/fwlink/?LinkId=229318

+0

अपडेट III - मुझे सिल्वरलाइट 5 के लिए क्लाइंट साइड पर काम करने के लिए System.ComponentModel.DataAnnotations.dll नहीं मिल सका, लेकिन सर्वर की तरफ अजीब तरह से सिल्वरलाइट प्रोजेक्ट इस .dll के .NET v4.5.1 संस्करण का उपयोग करता है। लेकिन ग्राहक पक्ष .NET संस्करण को स्वीकार नहीं करेगा, और इस .dll के सिल्वरलाइट संस्करण की मांग करेगा, जो इस तिथि के रूप में मुझे कहीं भी नहीं मिल रहा है। तो आपको क्लाइंट साइड के बिना करना होगा। – PaulDecember

4

मुझे भी वही समस्या थी और मैंने अपनी परियोजनाओं में से एक में संदर्भ जोड़कर हल किया, जिसमें उल्लेख किया गया संदर्भ नहीं था। यदि आपके समाधान में 2-3 परियोजनाएं हैं, तो अन्य संदर्भों में इस संदर्भ को जोड़कर जांचें।

0
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 . 
0

मैंने सिल्वरलाइट 4 से सिल्वरलाइट 5 में अपग्रेड किया और फिर मुझे यह समस्या हो रही थी। यद्यपि मेरे पास प्रोजेक्ट में "संदर्भ" के तहत "System.ComponentModel.DataAnnotations" का संदर्भ था, लेकिन इसके द्वारा पीले उपज का संकेत था जो दर्शाता था कि पहले संदर्भित असेंबली नहीं मिल सका। यह पता चला कि "System.ComponentModel.DataAnnotations" संदर्भ के गुणों ने "विशिष्ट संस्करण = सही" इंगित किया, जब मैंने इसे "विशिष्ट संस्करण = गलत" में बदल दिया, तो इसने समस्या को ठीक किया। "संदर्भ" के अंतर्गत "System.ComponentModel.DataAnnotations" असेंबली पर राइट क्लिक करें और संदर्भ मेनू से "गुण" चुनें। "विशिष्ट संस्करण = गलत" के लिए संपत्ति मान जांचें।

यह पुराने सिल्वरलाइट 4 विधानसभा नहीं रह गया है सिल्वरलाइट 5. को अपग्रेड करने के बाद उपलब्ध था जो संदर्भित रहा होगा

0

System.ComponentModel.DataAnnotations अपनी ही विधानसभा में निहित है ताकि आप सुनिश्चित तुम्हारे पास है बनाने की जरूरत है refernced। बस बस:

1)। Soloution पर राइट क्लिक करें और जोड़ें चुनें।

2)। सूची से संदर्भ चुनें।

3)। "System.ComponentModel.DataAnotation" खोजें और अपने बाएं हाथ की ओर चेक बॉक्स पर निशान लगाएं और ठीक दबाएं।

नौकरी की गई, कोई भी त्रुटि नहीं होनी चाहिए।

0

यदि आपके पास संदर्भ में नहीं है (जैसे मैंने नहीं किया) तो आप NuGet System भी जोड़ सकते हैं। कॉम्पोनेंट मॉडेल। असेंबली प्राप्त करने और त्रुटियों को हल करने के लिए नोटेशन। (इसे इस उत्तर के रूप में अभी भी त्रुटि के लिए Google के शीर्ष के रूप में जोड़ना)

संबंधित मुद्दे

 संबंधित मुद्दे