Различные параметры для XmlSerialization и производного типа - PullRequest
0 голосов
/ 12 ноября 2009

У меня есть следующий граф объектов:

public class BaseType
{
}

public class DerivedType : BaseType
{
}

Когда я передаю DerivedType в XmlSerializer, мне нужно, чтобы он отражался в BaseType вместо DerivedType. Есть ли способ контролировать это с помощью атрибутов без реализации IXmlSerializer для DerivedType?

1 Ответ

0 голосов
/ 14 ноября 2009

Если вы контролируете создание экземпляров сериализатора, просто передайте Type [] с объектом производного типа в качестве extraTypes. В противном случае добавьте

[XmlInclude(typeof(Derived))]

к определению базового класса. Выходной XML будет выглядеть точно так же, как если бы вы передали базовый экземпляр, за исключением атрибута xsi: type с именем производного типа.

Я думаю, это то, что вы просили ...

...