2010-08-04 13 views
5

मुझे आश्चर्य है कि मैं डब्ल्यूसीएफ में ऑपरेशन कंट्रैक्ट विधि के पैरामीटर को आवश्यकतानुसार कैसे निर्दिष्ट कर सकता हूं ताकि उत्पन्न xsd में minOccurs = "0" के बजाय minOccurs = "1" हो।आवश्यकतानुसार ऑपरेशन कंट्रैक्ट के पैरामीटर को निर्दिष्ट करने के लिए

उदाहरण:

[ServiceContract(Namespace = "http://myUrl.com")] 
public interface IMyWebService 
{ 
    [OperationContract] 
    string DoSomething(string param1, string param2, string param3); 
} 

इस XSD उत्पन्न करता है:

<xs:element name="DoSomething"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element minOccurs="0" name="param1" nillable="true" type="xs:string" /> 
     <xs:element minOccurs="0" name="param2" nillable="true" type="xs:string" /> 
     <xs:element minOccurs="0" name="param3" nillable="true" type="xs:string" /> 
    </xs:sequence> 
    </xs:complexType> 

लेकिन मैं मैन्युअल रूप में इसे ठीक करने के आवश्यकता के बिना कोड के भीतर minOccurs = "1" को परिभाषित करना चाहते xsd फ़ाइल।

+0

http: // stackoverflow .com/प्रश्न/1438623/कैसे-कर-i-force-wcf-to-autogenerate-wsdls-with-required-method-पैरामीटर-minoc/3436039 # 3436039 – Freelancer

+0

देखें [यहां] (http://stackoverflow.com/ प्रश्न/1438623/कैसे-कर-i-force-wcf-to-autogenerate-wsdls-with-required-method-पैरामीटर-minocc/3436039 # 3436039) मैं पतला के कि यह बेहतर समाधान है। –

उत्तर

7

आप तो आप DataMember विशेषता का उपयोग और निर्दिष्ट कर सकते हैं, एक कक्षा में अपने मानकों को रैप करने के लिए आवश्यकता हो सकती है IsRequired=true:

[ServiceContract(Namespace = "http://myUrl.com")] 
public interface IMyWebService 
{ 
    [OperationContract] 
    string DoSomething(RequestMessage request); 
} 

[DataContract] 
public class RequestMessage 
{ 
    [DataMember(IsRequired = true)] 
    public string param1 { get; set; } 

    [DataMember(IsRequired = true)] 
    public string param3 { get; set; } 

    [DataMember(IsRequired = true)] 
    public string param3 { get; set; } 
} 
+0

यह वह उत्तर नहीं है जिसे मैंने पढ़ने की आशा की थी, लेकिन यह स्पष्ट करने के लिए धन्यवाद कि यह कैसे किया जाना चाहिए। –

+5

क्या यह जेनरेट xsd में minOccurs = "0" के रूप में चिह्नित ऑपरेशन कंट्रैक्ट में 'अनुरोध' तर्क नहीं देगा? – arathorn

+0

@arathorn मुझे लगता है कि आपको यहां कोई प्रतिक्रिया नहीं मिली है। आप एक मजबूत बिंदु लाते हैं। मेरे विचार में तुम सही हो। डब्ल्यूसीएफ में एक ऑपरेशन कंट्रैक्ट पैरामीटर आवश्यकता का प्रवर्तन (जहां तक ​​मैंने पढ़ा है) संदेश अनुबंध दर्ज किए बिना 'शून्य' प्रकारों पर नहीं किया जा सकता है। यहां एक लिंक मिला है: http://social.msdn.microsoft.com/Forums/vstudio/en-US/e707ed20-c09c-4e26-927a-7c3071d74ed7/operationcontfor-with-required-parameters?forum=wcf .. मुझे लगता है कि आप अपने बिंदु पर सही हैं। –

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

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