2009-10-19 8 views
6

मैं एक ग्राहक अनिवार्य है कि है कि मेरे required स्ट्रिंग तत्वों nillable="false" है है, वर्तमान में wsdl में सभी स्ट्रिंग्स बाहर आ nillable="true" होगा, IE:WCF: स्ट्रिंग तत्व nillable = "false"

<xs:element name="username" nillable="true" type="xs:string" /> 

मैं कैसे कर सकता है nillable="false" बदलें?! मैं यह कैसे करने के बारे में कोई सुझाव लेगा? क्या मैं पहला व्यक्ति हूं जिसने इसमें भाग लिया है?

+0

संबंधित: http://stackoverflow.com/questions/9039850/wcf-wsdl-nillable-attributes/21266714#21266714। – Steven

उत्तर

1

यह तत्व आपके डेटा अनुबंध में कैसे परिभाषित किया गया है?

यदि यह पहले किया नहीं है, डेटा सदस्य विशेषता के लिए एक IsRequired=true खंड जोड़ने का प्रयास करें:, मैं अपने WCF डेटा से गाया जा रहा है किसी भी तरह से XSD को प्रभावित करने के बारे में पता नहीं कर रहा हूँ

[DataContract] 
class YourDataStructure 
{ 
    ...... 

    [DataMember(IsRequired=True)] 
    string username; 

    ..... 
} 

उसके अलावा अनुबंध, अपने स्वयं के WsdlExporter एक्सटेंशन लिखने से कम (जो पूरी तरह से संभव है - बस यहां थोड़ा अधिक लगता है)।

+0

हाय मार्क। सलाह के लिये धन्यवाद। मैंने IsRequired = True की कोशिश की है, जो केवल minOccurs = "0" को हटा देता है। – stevenrosscampbell

+0

@Steven: मुझे इससे डर था :-( –

+0

हाय मार्क, अच्छी खबर, मेरे पास wsdlExporter wsdlExporter एक्सटेंशन में इसे लागू करने के लिए वास्तव में बहुत आसान था। सुझाव के लिए धन्यवाद, इसके बिना मुझे नहीं लगता कि मैं उस एवेन्यू से नीचे जाऊंगा। (नोट: मैंने http://blogs.msdn.com/stan_kitsis/archive/2005/08/06/448572.aspx का उपयोग किया XmlSchema चलना, और जब उचित तत्व पाया गया, तो मैं el.IsNillable = false जाने में सक्षम था; और यह काम किया। धन्यवाद। स्टीवन – stevenrosscampbell