2009-11-12 73 views
0

我有以下对象图:不同选项XmlSerialization和派生类型

public class BaseType 
{ 
} 

public class DerivedType : BaseType 
{ 
} 

当我传递DerivedType到XmlSerializer的我需要有它反映碱基类型,而不是DerivedType。有没有一种方法来控制这与属性没有在DerivedType上实现IXmlSerializer?

+0

所以你只想要BaseType属性而不是DerivedType? – Natrium 2009-11-12 13:15:47

+0

是的。那是对的。基本上我们在内部orm序列化器基本类型,但我想有一个在我的领域的派生类型的行为等。我没有添加更多的属性,只有行为 – 2009-11-12 14:47:11

回答

0

如果您可以控制序列化器实例,只需将派生类型对象的Type []作为extraTypes传递。否则,向基类定义添加一个

[XmlInclude(typeof(Derived))] 

。输出XML将看起来完全相同,就好像您已经传递了一个基本实例,除了具有派生类型名称的xsi:type属性。

我想这就是你要求的...