我在尝试序列化使用xsd.exe工具生成的多个部分公共类时遇到了困难。
我为每个类创建了新实例以填写详细信息,但似乎无法将它们一起序列化为一个xml文件。
Dim id As New Identifier 'partial class 1
id.Identifier_Type = "Material"
id.Identifier_Value = "MAT/001"
Dim id2 As New id2 'partial class 2
id2.string = "stuff"
id2.string2 = "more"
id2.string3 = "Some Stuff"
Dim id3 As New id3 'partial class 3
id3.string ="type"
Dim serializer As New XmlSerializer(id.GetType)
Dim writer As TextWriter = New StreamWriter("c:\stack\text.xml")
serializer.Serialize(writer, id)
writer.Close()
我似乎得到的只是一个部分类,我如何将它们组合在一起?
由于
答案 0 :(得分:0)
根据XML standard,有效的XML文件必须只有一个root element,例如:
<Identifier>
<Identifier_Type>Material</Identifier_Type>
<Identifier_Value>MAT/001</Identifier_Value>
</Identifier>
听起来您想创建一个包含三个顺序独立根的XML文件,对应Identifier
,id2
和id3
。这样的文件会违反标准,因此XmlSerializer
不提供创建此类文件的方法。
相反,您应该创建一个容器类型来保存其他类型,并序列化:
Public Class IdContainer
Public Property Identifier() As Identifier
Public Property id2() As id2
Public Property id3() As id3
End Class
(xsd.exe
可能已经为您自动生成了这样的类。检查为使用所有三种标识符类型生成的类型。)
示例fiddle。