2008-09-10 9 views

答えて

1

あなたが使用できるDLL内のすべてのタイプを取得するには、Activator.CreateInstanceを使用してTypeオブジェクトからクラスのインスタンスを作成することができますAssembly.GetTypes

1

これらのリンクを見てみましょう:

http://www.java2s.com/Code/CSharp/Development-Class/Createanobjectusingreflection.htm

http://msdn.microsoft.com/en-us/library/k3a58006.aspx

あなたは基本的にあなたが興味のあるタイプを見つけ、その後、アセンブリをロードするためにリフレクションを使用しています。あなたはタイプを持っていたら、それはコンストラクタや他のMETだ見つけるために依頼することができますhods /プロパティ。コンストラクタを作成したら、それを呼び出すことができます。簡単!

2

System.Reflection.Assemblyは、使いたいクラスです。これには、ユーザーDLLに含まれる型を反復処理するための多くのメソッドが含まれています。あなたはAssembly.GetTypes()タイプのリストを取得するための方法、または唯一の公共のもののためにAssembly.GetExportedTypes()を調査

http://msdn.microsoft.com/en-us/library/system.reflection.assembly_members.aspx

など、特定のインターフェイスから継承するかどうかを確認し、おそらく、各クラスを反復処理することができます。

1

既に述べたように、System.Reflection名前空間をポックする必要があります。

ロードするDLLの場所と名前がわかっている場合は、Assembly.GetTypes()を反復処理する必要があります。

擬似コードでは、このようになります:

が作成し、組立オブジェクト。

アセンブリに含まれるすべてのタイプを繰り返します。

あなたあなたが探しているものを見つけ、(のCreateInstance)それを呼び出す...

は賢く、それを使用したら。

;)

あなたの周り見てみたい場合、私はリフレクションコードの多くを持っていますが、作業は本当に簡単で、そこに野生のサンプルと記事のダースが少なくともあります。 (別名Google)。 それにもかかわらず、MSDNはReflection Referenceのあなたの友人です。

関連する問題