9

जब मैं विजुअल स्टूडियो 2008 में एक WCF सेवा संदर्भ जोड़ने के लिए, सेवा संदर्भ \ ServiceReferenceNamespace नाम के एक निर्देशिका बनाई गई है कर रहे हैं।क्या इन WCF सेवा संदर्भ फ़ाइलों

इस निर्देशिका में, वहाँ Service.xsd, Service1.xsd, Service2.xsd, Service3.xsd और Service4.xsd नामित फ़ाइलों है। फ़ाइलें डुप्लीकेट नहीं हैं - विभिन्न फाइलें विभिन्न प्रकारों और तत्वों को परिभाषित करती हैं। जब मैंने पहली बार सेवा रिफर्निस बनाया, तो केवल एक फ़ाइल थी, लेकिन अधिक सेवा * -फाइल जोड़े गए हैं जब मैंने अधिक डेटा कंट्रैक्ट और ऑपरेशन कॉन्ट्रैक्ट्स जोड़े हैं।

यह थोड़ा अजीब लग रहा है कि 5 अलग अलग फ़ाइलों उत्पन्न होते हैं और नहीं कर रहे हैं सिर्फ एक। अगर मैं सेवा संदर्भ (और इसलिए निर्देशिका) को हटा देता हूं और फिर इसे फिर से जोड़ता हूं, तो वही फ़ाइलें दोबारा जोड़ दी जाती हैं।

किसी को भी क्यों कई फ़ाइलों बनाया है और नहीं कर रहे हैं सिर्फ एक ही व्याख्या कर सकते हैं?

उत्तर

4

जब आप सेवा संदर्भ, वी.एस. पहले डाउनलोड मेटाडाटा जोड़ें करते हैं - कि सेवा का वर्णन - WSDL और XSD फाइल के रूप में। ये ServiceReference निर्देशिका में संग्रहीत हो जाते हैं। फिर वीएस इनपुट के रूप में उन फ़ाइलों का उपयोग करके कोड जनरेशन चरण चलाता है, जिससे संदर्भ.cs या .vb आउटपुट के रूप में उत्पादन होता है।

+0

शायद मैं स्पष्ट नहीं था। मेरा सवाल था कि सेवा 1.xsd, Service2.xsd, Service3.xsd और Service4.xsd क्यों थी और न केवल Service.xsd। – Martin

+3

आपको एक xsd फ़ाइल प्रति प्रकार नेमस्पेस मिलेगा। डब्ल्यूसीएफ सेवाओं के लिए जो डेटाकंट्रैक्टसेरियलाइज़र का उपयोग करते हैं, आपको आम तौर पर एक एक्सएसडी नेमस्पेस प्रति सीएलआर नेमस्पेस मिलेगा जो आपके प्रकार का उपयोग करते हैं, साथ ही अंतर्निर्मित प्रकारों के लिए एक अतिरिक्त। यदि आप अपने सभी एप्लिकेशन-परिभाषित प्रकारों को एक एक्सएसडी नेमस्पेस में रखना चाहते हैं तो आप इसे किसी भी यूआरआई में सेट करने के लिए [डेटाकंट्रैक्ट (नेमस्पेस = "...")] का उपयोग कर सकते हैं। – alexdej