オフィスで使用している商用ソフトウェアにアドインをロードするツールを開発しています。このソフトウェアのアドインは、ソフトウェアの API のクラスを継承するクラスを含む .NET アセンブリを作成することによって開発できます。
したがって、私のソフトウェアは DLL を調べて、API アドイン クラスから名前で継承するクラスが含まれているかどうかを判断する必要があります。ただし、アプリケーションを API 自体に依存させたくありません。これらのクラスをインスタンス化または実行する必要はなく、API アドイン クラスから継承するクラスの完全な名前を決定するだけです。
次を使用してdllアセンブリをロードできます。
Assembly.LoadFrom(dllFileName)
それでも、ロードされたアセンブリで GetTypes() を呼び出そうとすると。API ファイルが見つからないことを訴える多数の LoaderExceptions を含む ReflectionTypeLoadException が発生します。
私も使用してみReflectionOnlyLoadFrom()
ましたが、同じ例外がスローされました。
この情報を取得する他の方法はありますか?ここでもコードを実行する必要はありません。最終的には、API やソフトウェアがまったくインストールされていないコンピューターでツールを動作させたいと考えています。私が知る必要があるのは、完全なクラス名だけです。