XML-序列化派生类而无需访问基类或序列化程序实例?

时间:2011-01-23 19:08:44

标签: .net xml-serialization

我正在为一个暴露抽象基类类型的应用程序编写一个插件,我的类应该派生它。 当它存储我的实例化类以供以后检索时,应用程序使用其XML序列化程序来序列化类,而不会将序列化程序暴露给我。

显然,当它尝试序列化我的类时,XML序列化程序抛出System.InvalidOperationException异常,并带有消息

  

“不期望 YourDerivedType 类型。使用   XmlInclude或SoapInclude   用于指定类型的属性   静静地不知道。“

由于我无法访问基类,因此我无法使用XmlInclude属性进行装饰,并且因为应用程序使用自己的序列化程序,所以我无法使用new XmlSerializer,传递我的派生键入其构造函数,然后使用此XmlSerializer进行序列化。

关于如何(或是否!)我可以让我的班级序列化并使这个例外消失的任何建议都会消失?

1 个答案:

答案 0 :(得分:1)

尝试在派生类中实现IXmlSerializable,并希望XML Serializer能够识别并使用它。如果没有,我认为你运气不好。

确保您的类具有无参数构造函数(容易忘记但对IXmlSerializable至关重要)。