2011-07-13 21 views
40

xsd.exe उपकरण का उपयोग कर मेरी xsd फ़ाइल से कक्षा बनाने के बाद मुझे यह त्रुटि मिलती है। तो मैंने नेट की खोज की और एक समाधान मिला। यहां लिंक है: http://satov.blogspot.com/2006/12/xsdexe-generated-classes-causing.htmlएक अस्थायी कक्षा उत्पन्न करने में असमर्थ (परिणाम = 1)। त्रुटि CS0030: प्रकार 'प्रकार []' को 'टाइप' में परिवर्तित नहीं कर सकता?

समस्या यह है कि यह कोड चलाता है, लेकिन किसी भी तरह से deserialized डेटा दूषित लगता है। मैंने जो किया वह साइट करता है और अंत में दूसरा सरणी आयाम हमेशा खाली रहता है (साइट की टिप्पणियां देखें, किसी को भी यह समस्या थी)। सवाल यह है कि, अब मैं इस मुद्दे को कैसे हल करूं? Xsd फ़ाइल बनाने के लिए कोई और उपकरण है? मैंने सफलता के बिना Xsd2Code की कोशिश की।

धन्यवाद :-)

+0

क्या आपने यहां चर्चा देखी थी: http://social.msdn.microsoft.com/forums/en-US/asmxandxml/thread/e33305c3-b5f6-4922-8a3f-df202088d25a/ ऐसा लगता है कि आप एक डमी जोड़ सकते हैं आपके एक्सएसडी में विशेषता। सुनिश्चित नहीं है कि यह समस्या है जिसका आप सामना कर रहे हैं। –

+0

मुझे एक सिमुलेटर समस्या है, लेकिन डमी विशेषता जोड़ने से यह ठीक नहीं हुआ है, मेरा प्रश्न यहां देखें: http://stackoverflow.com/q/10514817/198048 –

उत्तर

88

आप धारावाहिक कक्षा में एक सदस्य चर का प्रकार बदलने के लिए की जरूरत है। उदाहरण के लिए यदि इसकी कोई त्रुटि बढ़ रही है जैसे:

अस्थायी कक्षा (परिणाम = 1) उत्पन्न करने में असमर्थ। त्रुटि CS0030: प्रकार 'डेटा []' को 'डेटा' में परिवर्तित नहीं कर सकता।

मैं उत्पन्न फ़ाइल में मौजूद डेटा प्रकार का नाम पर एक खोज भाग गया, और मैं इस पाया:

[System.Xml.Serialization.XmlArrayItemAttribute("Data", typeof(Data), IsNullable=false)] 
public Data[][] Row 

Data[] के साथ बदलें Data[][] - एक करने के लिए एक 2 डी सरणी से डेटा का प्रकार बदलें 1 डी सरणी यह आपकी समस्या का समाधान करेगा। :)

+1

धन्यवाद, यह मेरी समस्या हल हो गया है :) – techExplorer

+4

इसके लिए धन्यवाद संकेत। लेकिन माइक्रोसॉफ्ट एक्सएसडी उपकरण 2 डी सरणी क्यों उत्पन्न करता है? – float

+6

टीडी Ameritrade के स्टॉक ब्रोकर एपीआई द्वारा लौटाए गए एक्सएमएल के लिए कक्षा उत्पन्न करने के लिए माइक्रोसॉफ्ट के एक्सएसडी का उपयोग करते समय मुझे एक ही समस्या थी .. मुझे आश्चर्य है कि XSD.EXE से बेहतर उपकरण हैं जो हमारे बिना स्वचालित रूप से सी # कक्षा? मुझे एक एक्सएमएल में बहुत सारी त्रुटियां मिल रही हैं और मेरे पास प्रक्रिया करने के लिए बहुत कुछ है ...! –

9

एक ही समस्या थी, लेकिन Xsd2Code VS2012 के साथ एकीकृत नहीं हुआ था। तो बजाय मैं अपने xsd.exe उत्पन्न .cs फ़ाइल के पास गया और आपने क्या किया:

[] [] का पता लगाएं []

जो काम किया बदलें।

0

मेरे मामले के लिए, XmlArrayItem प्रॉपर्टी विशेषता के लिए अमान्य घोषणा के कारण समस्याएं। स्ट्रिंग से className

को
[XmlArrayItem("MyArray", typeof(ClassName))] 
public List<ClassName> Items{ get; set; } 

आशा इस मदद करता है:

[XmlArrayItem("MyArray", typeof(string))] 
public List<ClassName> Items{ get; set; } 

से मैं उचित प्रकार से बदल गया है!

0

तो VB.net में अपनी तो आप)) अपने Reference.vb में के लिए (खोज (और()

1

के साथ बदलें हर
<xs:sequence maxOccurs="unbounded"> <xs:element ../> </xs:sequence>
और
<xs:sequence> <xs:element maxOccurs="unbounded"/> </xs:sequence> के बाद <xs:attribute name="tmp" type="xs:string" /> जोड़े को मिला
आपकी स्कीमा फ़ाइल में तत्व यदि आप सरणी के आयाम को खोना नहीं चाहते हैं।

+0

क्या आप इसका उदाहरण दे सकते हैं? – Najera

3

मैं इस अपने समाधान error.In है कि वहाँ फ़ाइल आप खोज करने के "[] []" और फिर वहाँ हो जाएगा उस में दो परिणाम की जरूरत है reference.cs फ़ाइल ..

के बाद आप की जरूरत मिल गया दोनों स्थानों से "[] []" से एक "[]" हटा दें ..

यह मेरे लिए काम करता है ..

धन्यवाद ..

+0

सभी उत्तरों में से, यह वह है जो मेरे लिए काम करता है। जब आप एक सेवा संदर्भ जोड़ते हैं, तो विजुअल स्टूडियो लगता है, यह बहुत गलती करता है। – nivs1978

+0

हां। इस त्रुटि में मेरे 5 घंटे लगे –

1

मेरे लिए यह कोड उत्पन्न करने के लिए इस्तेमाल किया एक्सएमएल पैच करने के लिए मदद करता है।

<Names> 
    <Name></Name> 
    <Name></Name> 
</Names> 

तो इस डबल सरणी नाम प्रविष्टि

मैं क्या करने के लिए XSD द्वारा ऑप्टिमाइज़ किया गया है:: यह जब होता है

<Names> 
    <Dummy></Dummy> 
    <Name></Name> 
    <Name></Name> 
</Names> 

XSD यह अनुकूलन नहीं करता लेकिन एकल सरणी छोड़ देता है नाम

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

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