私は抽象基本クラス型を公開するアプリケーションのプラグインを作成しており、そこからクラスが導出されるはずです。 インスタンス化されたクラスを後で取得するために保存するとき、アプリケーションはXMLシリアライザを使用してシリアライザを公開せずにクラスをシリアライズします。それは私のクラスをシリアル化しようとするとXML:ベースクラスまたはシリアライザインスタンスにアクセスすることなく、派生クラスをシリアル化しますか?
明らかは、XMLシリアライザは、XmlIncludeまたはSoapIncludeを使用してください。が予想されなかったメッセージ
「タイプYourDerivedTypeで、
System.InvalidOperationException
例外をスロー 属性に静的に知られていないタイプの を指定してください。
私は、基本クラスへのアクセスを持っていないので、私はXmlInclude
属性とそれを飾ることができず、アプリケーションは独自のシリアライザを使用するので、私はnew XmlSerializer
を使用することはできません、そのコンストラクタに私の派生型を渡します、このXmlSerializerを使用してシリアル化します。
私のクラスをシリアル化してこの例外をなくす方法についての提案はありますか?
これは、そうするべきではありません。接続しているアプリケーションによって提供されるガイドラインはありませんか?彼らがプラグインのためにこのアーキテクチャーを特別に設計したのであれば、それは簡単でなければならないか、それを混乱させてしまっているはずです。それは確立されたアプリの場合おそらく後者ではない。あなたが間違っているかどうかを確認するために参照できる例はどれですか? – Rory
私はロリーに同意します、それは理想的には理想的なものよりも複雑です。私は、アプリケーションの製品チームに、私たちがどのように動作させるかについての提案を求めました。 – Satyajit