我正在为一个暴露抽象基类类型的应用程序编写一个插件,我的类应该派生它。 当它存储我的实例化类以供以后检索时,应用程序使用其XML序列化程序来序列化类,而不会将序列化程序暴露给我。
显然,当它尝试序列化我的类时,XML序列化程序抛出System.InvalidOperationException
异常,并带有消息
“不期望 YourDerivedType 类型。使用 XmlInclude或SoapInclude 用于指定类型的属性 静静地不知道。“
由于我无法访问基类,因此我无法使用XmlInclude
属性进行装饰,并且因为应用程序使用自己的序列化程序,所以我无法使用new XmlSerializer
,传递我的派生键入其构造函数,然后使用此XmlSerializer进行序列化。
关于如何(或是否!)我可以让我的班级序列化并使这个例外消失的任何建议都会消失?
答案 0 :(得分:1)
尝试在派生类中实现IXmlSerializable,并希望XML Serializer能够识别并使用它。如果没有,我认为你运气不好。
确保您的类具有无参数构造函数(容易忘记但对IXmlSerializable至关重要)。