基本クラスにメソッドのみを追加する派生クラスがあります。派生クラスを直列化して、それが基本クラスの直列化と一致するようにするにはどうすればよいですか? すなわち、派生クラスの直列化されたXMLは次のようになります。派生クラスを基底クラスとして直列化する方法
<BaseClass>
...
</BaseClass>
例えば 以下はInvalidOperationExceptionをスローします "型DerivedClassが期待されていませんでした。静的に知られていない型を指定するには、XmlIncludeまたはSoapInclude属性を使用してください。
Class BaseClass {}
Class DerivedClass : BaseClass {}
DerivedClass derived = new DerivedClass();
StreamWriter stream = new StreamWriter("output file path");
XmlSerializer serializer = new XmlSerializer(GetType(BaseClass));
serializer(stream, derived);
、ありがとう、ありがとう。 –
皆さん、私はここで同じ問題を抱えていますが、これはうまくいきませんでした。私の基本クラスはXSDから作成されたので、私は[XmlRoot]に何を入れるのかわかりません は、クラスの名前、または基本クラスのルート要素の名前です(名前空間を指定する必要があります。等)? – Tejo
派生型ではなく、基底のみが分かっていれば解はありますか? –