0

ユーザーが「プロジェクト」を維持および保存できる.NETフレームワークアプリケーションを開発しています。プロジェクトは、フレームワーク自体のアセンブリや、まだビルドされていないプラグイン アーキテクチャを介してフレームワークで使用できるようになるサード パーティのアセンブリで型が定義されているコンポーネントで構成できます。プロジェクトが保存されると、単純にファイルにバイナリ シリアル化されます。

プロジェクトは移植可能であるため、複数のユーザーが同じプロジェクトをフレームワークの独自のインスタンスにロードできます (異なるユーザーが MSWord のローカル コピーで同じ MSWord ドキュメントを開くことができるのと同じように)。さらに、あるユーザーのフレームワークで使用できるプラグインが、別のユーザーのフレームワークでは使用できない場合があります。

ユーザーが、(フレームワーク バージョンの非互換性またはプラグインの不在のいずれかの理由で) 定義アセンブリが見つからない型を含むプロジェクトを開こうとした (つまり、逆シリアル化した) ときに、プロジェクトが引き続き動作することを保証する何らかの方法が必要です。開きますが、問題のあるタイプが何らかの形で置換または省略されています。問題は、私がこれまでに行った調査では、適切なアプローチのヒントすら得られないことです。どんなアイデアでも大歓迎です、ありがとう。

4

2 に答える 2

0

リフレクションを使用して独自のシリアライザーを作成する必要があります。

于 2010-04-01T14:57:44.820 に答える
0

この問題は、アーキテクチャに大きく依存しています。インターフェイスと依存性注入は、説明する「プラグ可能な」アーキテクチャを実現するために使用されますが、使用できないタイプ定義から「回復」する方法を決定できるのはあなただけです。プロジェクトのどのコンポーネントもロードされない可能性があるという事実を考慮して設計する必要があります。

于 2010-04-01T15:00:14.813 に答える