c# - एक अस्थायी वर्ग(परिणाम=1) उत्पन्न करने में असमर्थ त्रुटि CS0030: प्रकार 'प्रकार[]' को 'प्रकार' में परिवर्तित नहीं किया जा सकता?




xsd xml-deserialization (5)

Xsd.exe उपकरण का उपयोग करते हुए मेरी एक्सएसडी फाइल से एक वर्ग बना लेने के बाद मुझे यह त्रुटि मिलती है। इसलिए मैंने शुद्ध खोज की और एक समाधान पाया। यहां लिंक है: http://satov.blogspot.com/2006/12/xsdexe-generated-classes-causing.html

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

धन्यवाद :-)


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

ढूंढें [] [] बदलें []

जो काम किया


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

से

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

मैं उपयुक्त प्रकार के साथ बदल गया: स्ट्रिंग से क्लासनाम के लिए

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

उम्मीद है की यह मदद करेगा!


यदि इसके VB.net में है तो आप () () () () के लिए खोज कर सकते हैं आपके संदर्भ। वीबी में और (के साथ बदलें)


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


मेरे लिए यह कोड जनरेट करने के लिए इस्तेमाल किए जाने वाले एक्सएमएल को पैच करने में मदद करता है। यह तब होता है जब:

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

तो यह एक्सएसडी द्वारा अनुकूलित किया जाता है ताकि ऐरे नाम प्रविष्टि को दोहराया जा सके

मैंने क्या किया है:

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

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