Я бы подумал, что вы захотите;
[KnownType(typeof(A))]
public class B : A
{
...
}
, поскольку B "- это" A (для всех намерений и целей сериализации WCF).Однако, как вы понимаете в настоящее время, вы говорите, что A "является" B, что не всегда так (например, typeof C), но при дальнейшем расследовании ... Я был бы неправ.
Я несколько раз сталкивался с примером Person: Contact, и я просто подумал, что поищу это, чтобы убедиться, что мое понимание верно, и эта ссылка показывает синтаксистак же, как у вас (аннотации в базовом классе).Это показывает укладку следующим образом:
1. [DataContract]
2. [KnownType(typeof(Customer))]
3. [KnownType(typeof(Person))]
4. class Contact {...}
5.
6. [DataContract]
7. class Person : Contact {...}