.Net 4 の XmlSerializer を使用して、名前が同じで名前空間が異なる 2 つのクラスを含むクラスをシリアル化しようとしています。
[XmlInclude(typeof(MyNamespace1.MyClass))]
[XmlInclude(typeof(MyNamespace2.MyClass))]
public class SuperInfo
{
public MyNamespace1.MyClass A{ get; set; }
public MyNamespace2.MyClass B{ get; set; }
}
シリアライザーは、同じ名前のこれら 2 つのクラスを区別できないことが判明しました。例外は次のとおりです。
'Types MyNamespace1.MyClass' と 'MyNamespace2.MyClass' は両方とも、名前空間 '' の XML 型名 'MyClass' を使用します。XML 属性を使用して、型の一意の XML 名や名前空間を指定します。
このスレッドで解決策を見つけました。同名のクラスを次のような属性で装飾することで構成されています。
[XmlType("BaseNamespace1.MyClass")]
[XmlType("BaseNamespace2.MyClass")]
私の場合、これらのクラスは自動生成されたプロキシから Web サービスに渡されるためです。
解決策はありますか?