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




xsd xml-deserialization (6)

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

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

धन्यवाद :-)


मुझे यह त्रुटि मिलती है। आपके समाधान में उस फ़ाइल में reference.cs फ़ाइल है जिसे आपको "[] []" खोजना होगा और फिर इसमें दो परिणाम होंगे ..

आपको दोनों स्थानों से "[] []" से एक "[]" को हटाने की आवश्यकता है।

इससे मेरा काम बनता है..

धन्यवाद..


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

से

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

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

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

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


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

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

जो काम किया


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

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

मैंने जनरेटेड फ़ाइल में डेटा टाइप नाम पर एक खोज की है, और मुझे यह मिला:

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

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


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


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

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

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

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

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

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