gpt4 book ai didi

xml - 防止 IEnumerable 和 ICollection & 继承类型的 XML 序列化

转载 作者:数据小太阳 更新时间:2023-10-29 02:02:45 24 4
gpt4 key购买 nike

注意:XMLIgnore 不是答案!

好的,下面是我关于 XML Serialization and Inherited Types 的问题,我开始将该代码集成到我正在处理的应用程序中,愚蠢地认为一切都会顺利..

我遇到了一些实现 IEnumerableICollection

类的问题

问题在于,当 XMLSerializer 开始序列化它们时,它将它们视为外部属性,而不是使用我们希望它使用的属性(即带有我们的AbstractXmlSerializer 的属性) ) 它来到这里并倒下(由于类型不匹配),几乎让我们回到原点。您也不能使用 XmlIgnore 属性修饰这些方法,因此我们不能那样阻止它。

我目前的解决方案是删除接口(interface)实现(在当前的应用程序中,这没什么大不了的,只是让代码更漂亮)。

我是否需要为此放下我的骄傲并接受它无法完成?我知道我有点插入并从 XmlSerializer 中获得了比预期更多的东西:)


编辑

我还应该补充一点,我目前在框架 2 中工作。


更新

我已经接受了lomaxx's answer .在我的场景中,我实际上不能这样做,但我知道它会起作用。由于没有其他建议,我最终从代码中删除了接口(interface)实现。

最佳答案

您可以通过获取 System.RunTime.Serialization dll(它是一个 .net 3.x 程序集)并从您的 .net 2.0 应用程序引用它来解决这个问题。这是有效的,因为 .net 3.0 二进制文件被编译为在 .net 2.0 CLR 上运行。

通过这样做,您可以访问 DataContractSerliazer,我曾经用它来解决类似的问题,我想将 ICollection 作为参数传递给 web 服务,而 xmlserializer 不知道如何处理它

如果您对在 2.x 应用程序中使用 .net 3.x dll 很满意,您应该能够使用 DataContractSerializer 来解决这个问题

关于xml - 防止 IEnumerable 和 ICollection<T> & 继承类型的 XML 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31799/

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