2012-02-20 12 views
-1

私は20オーバーロードする1つの方法をと私は、動的にメソッド
を選択したい、私は今、私は動的にメソッドを呼び出したいジェネリックList<MyClass> lst = new List<MyClass>();
実行するメソッドを動的に選択する方法は?

class Myclass 
{ 
    String Paraname {Get; Set;} 
    String KeyName {Get; Set;} 
    String Border {Get; Set;} 
    .... So on 
} 

lst.add(new Myclass(Paraname="SomePara", KeyName="SomeKey")); 
lst.add(new Myclass(Paraname="SomePara", KeyName="SomeKey")); 
lst.add(new Myclass(Paraname="SomePara", KeyName="SomeKey", Border="Left"));   

があるとし、動的にメソッド
を選択しますリストに追加されたパラメータに基づいておかげさまで

+0

がどのようにコールする方法を決定します。

MethodInfo.Invoke(...) 

そして、ここではどのように? – mshsayem

+1

あなたの質問はあまり明確ではありません - 達成しようとしていることをもう少し説明できますか?そして、どの方法で話していますか? – reuben

+0

詳細情報をご記入ください。あなたが何をしたいかはわかりません。一般的にリフレクションを使用すると、実行するメソッドを動的に選択できます。 – Sean

答えて

1

最終的には、あなたのリストと各アイテムを見て、どのメソッドを呼び出すかを決める基準が必要です。あなたは、このような

Type myType = Type.GetType("MyClass"); 
     ConstructorInfo myConstructor = myType.GetConstructor(Type.EmptyTypes); 
     object myClassObject = myConstructor.Invoke(new object[]{}); 


     MethodInfo myMethod = myType.GetMethod("Method Name"); 
     object myValue = myMethod.Invoke(myClassObject, new object[]{100}); 
-1

としてメソッドを呼び出すことができると判断したら、あなたはより良いOOPに関するいくつかの記事を読んで、あなたのアプリfは、より親しみやすいアーキテクチャを構築してみてください。それから、あなたの質問はすべて理解できるようになり、現在のものとは異なります。

+0

最初に質問を理解してみてください –

+0

あなたの質問にはさらに詳しい情報を追加する必要があります。そうしないと、クラスに応じてクラスの動作が異なるように思えます。 –

関連する問題