サードパーティの相互運用ライブラリ (AutoCad) の異なるバージョンを切り替えるアプリがあります。使用する相互運用 API のサブセットは、相互運用ライブラリのすべてのバージョンで同じです。
クライアント コードを再利用しながら異なるバージョンのライブラリを参照する最も効果的な方法は何ですか?
1 つの方法は、リフレクションを使用することです。使用される相互運用インターフェイスごとにラッパー タイプを定義し、ラッパー内でリフレクションを使用して、相互運用アセンブリの指定されたバージョンから相互運用タイプを読み込み、相互運用オブジェクトへのすべての呼び出しをプロキシします。使用されるサブセット内のすべてのインターフェイスが相互運用のすべてのバージョンでまったく同じである場合、このアプローチは無駄に思えます。
他のアプローチは、プロジェクトのさまざまな構成でさまざまな相互運用アセンブリを参照することです。相互運用アセンブリ全体で同一のインターフェイスを使用すると、相互運用アセンブリのバージョンごとに異なるバージョンのクライアント アセンブリをコンパイルできるようになります。このアプローチで実装する方法がわからないことの 1 つは、プロジェクトを構成して、クライアント アセンブリのすべてのバージョンを同時にビルドし、それらすべてを 1 つのディストリビューションに含めることです。
ここでもコード生成を使用できるはずですが、それがどれほど難しいかはわかりません。
この種の問題をどのように解決しますか?
ありがとう!