2009-06-01 2 views
1

私はプロジェクトを構築しています。ユーザーが拡張機能(DLLファイル)を追加できるアプリケーションです。拡張機能を管理するには、クラス、関数などのリストを取得する必要があります。それを行うためのコードはありますか?DLLの関数リストを取得します。

注:私はC#を使用しています。

答えて

12

特定のアセンブリの場合は、Assembly.GetTypesを使用して型を取得し、次にType.GetMethods(),Type.GetProperties()など、またはType.GetMembers()の型呼び出しを使用できます。

しかし、プラグインの機能性については、プラグインが実装しなければならない共通のインターフェイスを持つことをお勧めします。これは、使用する必要がある反射の量を減らします。 Type.IsAssignableFrom()を使用して、タイプが特定のインターフェイスと互換性があるかどうかを確認してください。

拡張システムの実装を容易にするManaged Extensibility Frameworkもご覧ください。

+0

+1 MEFを見る –

0

他のアセンブリをロードしてその内容を使用してアプリケーションを拡張するC#で拡張可能なアプリケーションを構築する場合は、スタックオーバーフローの質問System with plugins in C#を参照してください。

関連する問題