जब मैं निम्न विधि को परिभाषित किया है:मैं डब्ल्यूसीएफ को आवश्यक विधि पैरामीटर (minoccurs = "1") के साथ डब्लूएसडीएल को स्वत: उत्पन्न करने के लिए कैसे मजबूर कर सकता हूं? WCF और OperationContracts का उपयोग कर
[OperationContract]
[FaultContract(typeof(ValidationFault))]
[FaultContract(typeof(FaultException<ExceptionDetail>))]
int DoSomething(int someId, MyComplexType messageData);
इस WCF क्रम से एक डबल्यूएसडीएल में अनुवाद किया जाता है, यह minoccurs = "0" मानकों someId और messageData के लिए सूचीबद्ध साथ साथ समाप्त होता है (और बाद में इन पैरामीटर गुम होने पर रनटाइम त्रुटि फेंकता है)।
अगर मैं एक प्रॉक्सी SoapUI का उपयोग कर रहा है कि इस तरह दिखता है प्राप्त उत्पन्न:
<com:DoSomething>
<!--Optional-->
<com:EventId>1</com:EventId>
<!--Optional-->
<com:myComplexType >
<com:id>1</com:id>
</com:myComplexType >
</com:DoSomething>
MyComplexType में आईडी फ़ील्ड अप DataMemeber विशेषता IsRequired = "true का उपयोग कर के साथ चिह्नित है "और इस प्रकार अनिवार्य के रूप में उजागर किया गया है।
यह स्पष्ट रूप से डब्लूएसडीएल के लिए बहुत भ्रामक है कि यह निर्दिष्ट करने के लिए कि पैरामीटर वैकल्पिक है, लेकिन मुझे ऑपरेशन कंट्रैक्ट को मार्क करने के लिए कोई स्पष्ट तरीका नहीं दिख रहा है ताकि डब्ल्यूसीएफ को आवश्यकतानुसार इन पैरामीटर को पहचानने और बेनकाब करने के लिए मजबूर किया जा सके।
मैं थोड़ा परेशान हूं, ऐसा करने के लिए एक स्पष्ट तरीका प्रतीत नहीं होता है (इंटेलिजेंस/एमएसडीएन/गूगल पढ़ना)। या मैं अंधेरा जा रहा हूं और कुछ स्पष्ट दिख रहा हूं।
कोई सुराग?
मैं इस माइक्रोसॉफ्ट कनेक्ट मुद्दा https://connect.microsoft.com/wcf/feedback/ViewFeedback.aspx पाया है:
यहाँ ब्लॉग पोस्ट है कि यह पूरे विस्तार से व्याख्या है FeedbackID = 482144 जो दर्शाता है कि यह संभव नहीं हो सकता है। जो बेकार है। – DavidWhitney
आगे विचार के साथ, ऐसा प्रतीत होता है कि पैरामीटर minoccurs = "0" के रूप में सूचीबद्ध हैं क्योंकि प्रकार स्वयं शून्य हो सकते हैं, इस प्रकार, अगर किसी ने एक शून्य की आपूर्ति की है तो यह अभी भी विधि सिग से मेल खाएगा। अभी भी डब्ल्यूएसडीएल पीढ़ी के प्रयोजनों और कॉलिंग एप्लिकेशन/संगठन के साथ अनुबंध को परिभाषित करने में मदद नहीं करता है। – DavidWhitney
जेनरेट डब्लूएसडीएल प्रभावित नहीं है क्योंकि प्रकार शून्य हो सकता है (संदर्भ प्रकार बनाम मूल्य प्रकार)। यदि कोई मान प्रकार छोड़ा गया है, तो उस मान प्रकार के लिए डिफ़ॉल्ट मान का उपयोग किया जाएगा। हालांकि नीचे मेरा जवाब देखें। – Thorarin