没有[XMLInclude]或Type []构造函数的抽象类的序列化

时间:2014-08-04 10:46:08

标签: c# xml serialization

我不确定这是否可行,但基本上我在NameSpace1 [assembly1]中有一个抽象类,在Namespace2 [assembly2]中有一个派生类。命名空间[assembly1]由Namespace2 [assembly2]引用。

现在我想在从assembly3 [仅引用assembly1]创建派生类的对象之后序列化抽象类。

我用Google搜索并发现我需要指定[XMLInclude()]属性或在XMLSerializer构造函数中将类型提供为ExtraTypes。我的项目的当前结构将不允许我实现这一点,可以在没有这两种方法的情况下实现序列化吗?

由于

1 个答案:

答案 0 :(得分:0)

一般来说,这是可能的。

您可以对此用例使用IXmlSerializable实现。在序列化时,您可以将对象的类型作为字符串写入xml以及对象,属性等...

对于反序列化,您可以从xml中读回类型,并使用Activator.CreateInstance(...)再次创建类型。