ユーザーが「プロジェクト」を維持および保存できる.NETフレームワークアプリケーションを開発しています。プロジェクトは、フレームワーク自体のアセンブリや、まだビルドされていないプラグイン アーキテクチャを介してフレームワークで使用できるようになるサード パーティのアセンブリで型が定義されているコンポーネントで構成できます。プロジェクトが保存されると、単純にファイルにバイナリ シリアル化されます。
プロジェクトは移植可能であるため、複数のユーザーが同じプロジェクトをフレームワークの独自のインスタンスにロードできます (異なるユーザーが MSWord のローカル コピーで同じ MSWord ドキュメントを開くことができるのと同じように)。さらに、あるユーザーのフレームワークで使用できるプラグインが、別のユーザーのフレームワークでは使用できない場合があります。
ユーザーが、(フレームワーク バージョンの非互換性またはプラグインの不在のいずれかの理由で) 定義アセンブリが見つからない型を含むプロジェクトを開こうとした (つまり、逆シリアル化した) ときに、プロジェクトが引き続き動作することを保証する何らかの方法が必要です。開きますが、問題のあるタイプが何らかの形で置換または省略されています。問題は、私がこれまでに行った調査では、適切なアプローチのヒントすら得られないことです。どんなアイデアでも大歓迎です、ありがとう。