无法生成临时类(结果= 1)。 错误CS0030:无法将types'Type '转换为'Type'?

我使用xsd.exe工具从我的xsd文件创build了一个类后出现此错误。 所以我search了networking,发现了一个解决scheme。 这里是链接: http : //satov.blogspot.com/2006/12/xsdexe-generated-classes-causing.html

问题是这使得代码运行,但反序列化的数据似乎损坏。 我做了网站的build议,最后第二个数组维度总是空的(查看网站的评论,有人也有这个问题)。 问题是,我现在怎么解决这个问题呢? 是否有另一个工具来创buildxsd文件? 我试过Xsd2Code,没有成功。

谢谢 :-)

您需要更改序列化类中成员variables的types。 例如,如果它提出一个错误,如:

无法生成临时类(结果= 1)。 错误CS0030:无法将types'数据[]'转换为'数据'。

我在生成的文件中的数据types名称上运行search,我发现这个:

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

Data[][]replaceData[][] – 将数据types从二维数组更改为一维数组。 它会解决你的问题。 🙂

有同样的问题,但Xsd2Code没有与VS2012集成。 所以相反,我去了我的xsd.exe生成的.cs文件,并做到:

查找[] []replace[]

哪些工作。

我得到了这个错误。在你的解决scheme中有文件中的reference.cs文件,你需要search“[] []”,然后会有两个结果。

在需要从两个地方从“[] []”中删除一个“[]”之后

这个对我有用..

谢谢..

在每次之后添加<xs:attribute name="tmp" type="xs:string" />
<xs:sequence maxOccurs="unbounded"> <xs:element ../> </xs:sequence>

<xs:sequence> <xs:element maxOccurs="unbounded"/> </xs:sequence>
如果你不想松散数组的维度,你的模式文件中的元素。

对我来说,这有助于修补用于生成代码的XML。 这发生在:

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

那么这是由xsd优化双数组名称条目

我做的是:

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

xsd不会优化它,而是留下单个数组名称

对于我的情况,由于XmlArrayItem属性属性的无效声明导致的问题。

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

我改变了适当的types:从string到ClassName

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

希望这可以帮助!

如果它在VB.net中,那么你需要在你的Reference.vb中search()()并用()