Unable to generate a temporary class (result=1). error CS0030: Cannot convert type 'Type[]' to 'Type'?

纵然是瞬间 提交于 2019-11-27 18:57:07
Ajax

You need to change the type of a member variable in the serialized class. For example if its raising an error like:

Unable to generate a temporary class (result=1). error CS0030: Cannot convert type 'Data[]' to 'Data'.

I ran a search on the Data type name in the generated file, and I found this:

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

Replace Data[][] with Data[] - Change the type of Data from a 2D array to a 1D array. It would solve your problem. :)

Had the same problem, but Xsd2Code didn't integrate with VS2012. So instead I went to my xsd.exe generated .cs file and did:

Find [][] Replace []

which worked.

I got this error.In your solution there is reference.cs file in that file you need to search "[][]" and then there will be two results in it..

After you need to remove one "[]" from "[][]" from both places..

It works for me..

Thanks..

Add <xs:attribute name="tmp" type="xs:string" /> after every
<xs:sequence maxOccurs="unbounded"> <xs:element ../> </xs:sequence>
and
<xs:sequence> <xs:element maxOccurs="unbounded"/> </xs:sequence>
element in your schema file if you don't want to loose dimension of the array.

If its in VB.net then you got to search for ()() in your Reference.vb and replace with()

Leendert Nelemans

For me it helps to patch the XML used to generate the code. It happens when:

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

then this is optimized by xsd to double array name entry

What I did is:

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

the xsd doesn't optimize it but leaves the single array name

For my case, the issue cases due to an invalid declaration for XmlArrayItem property attribute.

From

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

I changed with appropriate type: from string to ClassName

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

Hope this helps!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!