次のクラスがあります。B継承することに注意してAください。
[XmlInclude(typeof(B))]
public class A
{...}
public class B : A
{...}
のインスタンスBがシリアライズされると、xsi:type属性が追加されます。
<A xsi:type="B">
なぜこれが起こるのですか?結果はただのはずです<B>。
これはシリアル化のコードです。
var b = new B();
using (var writer = new XmlTextWriterFull(stream, Encoding.UTF8))
{
writer.Formatting = Formatting.Indented;
var s = new XmlSerializer(typeof(B));
s.Serialize(writer, b);
}
これは、シリアル化する他のクラスでは発生しません。クラスが異なる名前空間にあるためですか?
この問題を回避するにはどうすればよいですか?