我不确定这是否可行,但基本上我在NameSpace1 [assembly1]中有一个抽象类,在Namespace2 [assembly2]中有一个派生类。命名空间[assembly1]由Namespace2 [assembly2]引用。
现在我想在从assembly3 [仅引用assembly1]创建派生类的对象之后序列化抽象类。
我用Google搜索并发现我需要指定[XMLInclude()]属性或在XMLSerializer构造函数中将类型提供为ExtraTypes。我的项目的当前结构将不允许我实现这一点,可以在没有这两种方法的情况下实现序列化吗?
由于
答案 0 :(得分:0)
一般来说,这是可能的。
您可以对此用例使用IXmlSerializable实现。在序列化时,您可以将对象的类型作为字符串写入xml以及对象,属性等...
对于反序列化,您可以从xml中读回类型,并使用Activator.CreateInstance(...)再次创建类型。