ホストからのサービスを使用するためにアドインがホスト システムへのコールバックにも使用できる MAF パイプラインを構築しています。これらのメソッドは、アドインで処理する必要がある例外をスローできます。その場合は、それらをキャッチするだけでなく、分析することも意味する必要があります。
いつものように、appdomain の境界を越えてオブジェクトを取得するには 2 つのオプションがあります: それらをシリアル化するか、MarshalbyRefObject
.
実際、私は両方のオプションで問題を抱えています:
シリアル化を使用している場合、アドインは例外を逆シリアル化できないため、例外の正確な種類を知る必要があります。つまり、ここでは抽象化レイヤーで作業することはできません。Exception クラス自体はシリアル化可能としてマークされているため、これが機能するようにすべてのサブクラスもシリアル化可能としてマークする必要があります。ホストとアドインの間でタイプを分離できないため、これは実際には解決策ではありません (抽象化に取り組むことができないため)。
MarshalbyRefObject を使用しても機能しません。また、すべての Exception は「Exception」を拡張する必要があるため、MarshalbyRefObject を拡張することはできません。
この問題を解決できる標準パターンはありますか?