gpt4 book ai didi

c# - XmlSerializer.Deserialize - 忽略不必要的元素?

转载 作者:行者123 更新时间:2023-11-30 14:19:03 25 4
gpt4 key购买 nike

我有一个 XSD 模式,我已经生成了一个使用 xsd.exe 的类,我正在尝试使用 XmlSerializer.Deserialize从应该符合 XSD 架构的 XML 文件创建该类的实例。不幸的是,XML 文件有一些模式不期望的额外元素,这会导致 System.InvalidOperationExceptionDeserialize 抛出.

我试过添加 <xs:any>元素添加到我的架构中,但这似乎没有任何区别。

我的问题是:有没有办法得到XmlSerializer.Deserialize忽略这些额外的元素?

最佳答案

我通常向所有实体类添加额外的属性或字段以获取额外的元素和属性,类似于下面的代码:

[XmlAnyAttribute]
public XmlAttribute[] AnyAttributes;

[XmlAnyElement]
public XmlElement[] AnyElements;

根据生成代码的复杂性,您可能不会发现在每个实体上手动插入此代码都很有吸引力。在基类中定义这些属性并确保所有实体都继承该基类可能只是稍微不那么繁琐。

为了公平起见,我是在阅读 DasBlog 的源代码时第一次接触到这种模式的。

关于c# - XmlSerializer.Deserialize - 忽略不必要的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3430793/

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