gpt4 book ai didi

c# - 如何使用 XML 序列化没有无参数构造函数的密封类?

转载 作者:太空狗 更新时间:2023-10-29 22:20:45 24 4
gpt4 key购买 nike

我目前正在使用 XMLSerializer 来序列化我自己的类的列表。该类的属性之一是没有无参数构造函数的密封类的实例,因此 XML Serializer 拒绝序列化该类。我该如何解决这个问题?我需要将该属性序列化。

有什么方法可以让我指定该类应该如何序列化吗?

我们希望继续使用 XML;有没有我可以使用的另一个 XML 序列化程序,不会有这个问题?

再次,如果这是一个骗局,我深表歉意,但我不知道要搜索什么。

[编辑] 澄清一下,我无权访问密封类的源代码。

最佳答案

直接做是不可能的; XmlSerializer 无法处理没有无参数构造函数的类。

我通常做的是将无参数类包装在另一个与 XML 兼容的类中。包装类有一个无参数的构造函数和一组读写属性;它有一个调用真实类构造函数的 FromXml 方法。

[XmlIgnore]
public SomeClass SomeProperty { get; set; }

[XmlElement("SomeProperty")]
public XmlSomeClass XmlSomeProperty
{
get { return XmlSomeClass.ToXml(SomeProperty); }
set { SomeProperty = value.FromXml(); }
}

关于c# - 如何使用 XML 序列化没有无参数构造函数的密封类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3559744/

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