2011-06-14 14 views
6

मैं एक webservice से svcutil के साथ एक डाटाकंट्रैक्ट उत्पन्न कर रहा हूँ।svcutil और निर्दिष्ट फ़ील्ड

private System.Nullable<System.DateTime> createdField; 
private bool createdFieldSpecified; 

कैसे क्षेत्रों दोनों व्यर्थ हो सकता है और एक निर्धारित क्षेत्र हो सकता है:

svcutil /language:cs /noConfig /targetclientversion:Version35 
     /out:Generated\ProductService.cs http://example.com/ProductService.svc?wsdl 

क्षेत्रों इस तरह दिखता है उत्पन्न?

+0

क्या संपत्ति खुद को 'डेटटाइम' या 'डेटटाइम' के रूप में उजागर करती है? –

+0

इसे सिस्टम के रूप में उजागर किया गया है। शून्य adrianm

उत्तर

6

यह स्रोत Wsdl पर निर्भर करता है। मुझे यकीन है कि वहाँ कुछ इस (वाक्य रचना के बारे में सुनिश्चित नहीं) है:

<xsd:element name="created" type="xsd:datetime" minOccurs="0" xsd:nil="true" /> 

svcutil.exe उपयोग nillable एक Nullable<> क्षेत्र का उत्पादन करने के लिए, और minOccurs एक क्षेत्र + निर्दिष्ट संयोजन का निर्माण करने के।

मैं यह भी शर्त लगाता हूं कि डब्लूएसडीएल एक नेट उत्पन्न नहीं है डब्लूएसडीएल!

+0

यह बिल्कुल ठीक है। अब मुझे समझ आई। धन्यवाद। तुम नेट पर गलत हो Wsdl में कुछ अन्य चीजें बताती हैं कि यह निश्चित रूप से एक .NET सेवा है – adrianm

1

कक्षा पीढ़ी वेब सेवा के एक्सएसडी स्कीमा द्वारा संचालित है।

नालीबल फ़ील्ड उत्पन्न करने के लिए। फ़ील्ड को nillable के रूप में चिह्नित किया जाना चाहिए।

<xs:element minOccurs="0" maxOccurs="1" name="created" type="xs:dateTime" nillable="true" /> 

एक्सएमएल इस तरह दिखेगा।

<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <created xsi:nil="true" /> 
</root> 

मेरा मानना ​​है कि अपने स्कीमा में इस क्षेत्र को इस तरह दिखता है कि:

<xs:element minOccurs="0" maxOccurs="1" name="created" /> 

और यह तत्व पूरी तरह से छोड़ देते हैं, तो createdFieldSpecified = false:

<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
</root> 

लब्बोलुआब यह है: वेब सेवा स्कीमा svcutil के साथ शून्य क्षेत्रों को उत्पन्न करने के लिए अद्यतन किया जाना चाहिए।

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