[DataContract] के लिए नाम स्थान


230

मैं [DataContract]और [DataMember]तत्वों के लिए उपयोग करने के लिए नामस्थान नहीं ढूँढ सकता । मैंने जो पाया है, उसके अनुसार, ऐसा लगता है कि निम्नलिखित को जोड़ना पर्याप्त होना चाहिए, लेकिन मेरे मामले में यह नहीं है।

using System;
using System.Runtime.Serialization;

यहाँ मेरे कोड का एक स्निपेट है:

using System;
using System.Runtime.Serialization;

namespace MyNamespace {

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

और मुझे जो त्रुटि मिलती है:

प्रकार या नाम स्थान का नाम 'DataContract' नहीं मिला (क्या आप एक निर्देश या विधानसभा संदर्भ का उपयोग कर याद कर रहे हैं?)

क्या मैं सही नामस्थानों का उपयोग नहीं कर रहा हूँ?


वीएस 2017 का उपयोग करते हुए, कंपाइलर त्रुटि, निर्माण नहीं कर सकता, त्रुटियों की सूची में कोई संदेश या बिल्कुल भी कोई संकेत नहीं। DataContract का कोई सिंटैक्स रंग नहीं, कुछ भी नहीं।
dudeNumber4

@ dudeNumber4 अपनी परियोजना जोड़ें / संदर्भ पर राइट क्लिक करें। संवाद में System.Runtime.Serialization और चेकबॉक्स को चेक्ड स्टेट बनाते हैं। फिर प्रेस "ठीक है"
सिम माक

जवाबों:


433

DataContractAttributeक्लास System.Runtime.Serializationनेमस्पेस में है।

आपको एक संदर्भ जोड़ना चाहिए System.Runtime.Serialization.dll। हालाँकि यह विधानसभा डिफ़ॉल्ट रूप से संदर्भित नहीं है। अपनी परियोजना के संदर्भ को जोड़ने के लिए आपको संदर्भ -> समाधान एक्सप्लोरर में संदर्भ जोड़ें और मैन्युअल रूप से एक विधानसभा संदर्भ जोड़ें।


59
.... और उस विधानसभा को डिफ़ॉल्ट रूप से संदर्भित नहीं किया जाता है, इसलिए आपको References -> Add Referenceसमाधान एक्सप्लोरर में जाना होगा और एक विधानसभा संदर्भ जोड़ना होगा ...
marc_s

11
यह है, मैं अपने समाधान में संदर्भ नहीं था! मैंने सोचा था कि अगर एक संदर्भ की आवश्यकता होती है, तो यह मुझे लाइन पर एक त्रुटि देगा using System.Runtime.Serialization;। मुझे लगता है कि मैं गलत था :)
ओटियल

2
ओह। पृथ्वी पर यह usingकथन पर त्रुटि क्यों नहीं करता है ? यह मेरे लिए समझ में आता है।
यत्रिक्स

7
मुझे लगता है कि क्योंकि एक और dll उस नाम स्थान का उपयोग कर रहा है (अन्यथा आपको एक त्रुटि मिलेगी)
गुई

4
धन्यवाद! Microsoft के किसी भी उदाहरण का उल्लेख नहीं है।
बॉबरोड्स


5

[DataContract] और [DataMember] विशेषता System.ServiceModel नामस्थान में पाया जाता है जो System.ServiceModel.dll में है।

System.ServiceModel का उपयोग करता है System और System.Runtime.Serialization नामस्थान को क्रमबद्ध करने के लिए datamembers।


5

.Net 4.0 ढांचे के लिए दृश्य स्टूडियो में,

  1. प्रोजेक्ट में नए संदर्भ जोड़ने की कोशिश करें।
  2. .Net टैब पर, खोजें System.Runtime.Serialization
  3. अब, आप उपयोग कर सकते हैं using System.Runtime.Serialization। और त्रुटि नहीं दिखाई जाएगी।

0

सबसे पहले, मैं अपने मॉडल के संदर्भ जोड़ता हूं, फिर मैं अपने कोड में उनका उपयोग करता हूं। आपके द्वारा जोड़े जाने वाले दो संदर्भ हैं:

System.ServiceModel का उपयोग करना;
System.Runtime.Serialization का उपयोग कर;

तब, मेरे कार्यक्रम में इस समस्या को हल किया गया था। मुझे उम्मीद है कि यह उत्तर आपकी मदद कर सकता है। धन्यवाद।


0

मैंने C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ System को जोड़कर इस समस्या को हल कर दिया। संदर्भ में देखें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.