私はプロジェクトを構築しています。ユーザーが拡張機能(DLLファイル)を追加できるアプリケーションです。拡張機能を管理するには、クラス、関数などのリストを取得する必要があります。それを行うためのコードはありますか?DLLの関数リストを取得します。
注:私はC#を使用しています。
私はプロジェクトを構築しています。ユーザーが拡張機能(DLLファイル)を追加できるアプリケーションです。拡張機能を管理するには、クラス、関数などのリストを取得する必要があります。それを行うためのコードはありますか?DLLの関数リストを取得します。
注:私はC#を使用しています。
特定のアセンブリの場合は、Assembly.GetTypes
を使用して型を取得し、次にType.GetMethods()
,Type.GetProperties()
など、またはType.GetMembers()
の型呼び出しを使用できます。
しかし、プラグインの機能性については、プラグインが実装しなければならない共通のインターフェイスを持つことをお勧めします。これは、使用する必要がある反射の量を減らします。 Type.IsAssignableFrom()
を使用して、タイプが特定のインターフェイスと互換性があるかどうかを確認してください。
拡張システムの実装を容易にするManaged Extensibility Frameworkもご覧ください。
他のアセンブリをロードしてその内容を使用してアプリケーションを拡張するC#で拡張可能なアプリケーションを構築する場合は、スタックオーバーフローの質問System with plugins in C#を参照してください。
+1 MEFを見る –