gpt4 book ai didi

c# - XmlSerializer 不填充子元素

转载 作者:行者123 更新时间:2023-11-30 20:13:20 26 4
gpt4 key购买 nike

我使用 XSD.EXE 将 XSD 转换为对象。这很好用,我可以很好地使用 XMLSerializer 反序列化,除了作为数组生成的子元素不会填充。

    private SubElements[] subelementsField;

/// <remarks/>
[System.Xml.Serialization.XmlArrayItemAttribute("SubElement", IsNullable=false)]
public SubElement[] SubElement {
get {
return this.subelementField;
}
set {
this.subelementField = value;
}
}

即使 XML 中有数据,当我使用以下代码时它也不会填充它:

// Deserialize
var result = serializer.Deserialize(new StringReader(data.XMLText.ToString()));

根元素都可以正常工作,只是这种类型的 XML 数据的子元素不行:

<RootNode Weight="205" Year="1995">
<ParentNodeWhichWorksFine Contact="John Doe">
<SubElement SomeAttribute="123">
<Location>New York City</Location>
<Team>New York Pizza</Team>
</SubElement>
</ParentNodeWhichWorksFine>
</RootNode>

我是否遗漏了一些 XSD.EXE 不包含的提示或其他内容?

最佳答案

我假设您在其中定义属性 SubElement 的类是对应于 ParentNodeWhichWorksFine 的类?如果是这样,请尝试以下更改:

[XmlElement("SubElement", IsNullable=false)]
public SubElement[] SubElement

此外,您说您是使用 xsd.exe 生成此代码的。在这种情况下,输入是什么 - 一个 .xsd 文件?如果是这样,你能把它的相关部分也贴出来吗?

关于c# - XmlSerializer 不填充子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1645955/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com