Как динамически выбрать метод для выполнения? - PullRequest
0 голосов
/ 20 февраля 2012

Я хочу динамически выбрать метод
У меня есть один метод с перегрузкой 20, и я хочу динамически выбирать методы
Предположим, у меня есть Generic 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"));        

Теперь я хочу динамически вызывать метод на основе параметров, добавленных в список. Спасибо.

Ответы [ 3 ]

1 голос
/ 20 февраля 2012

В конечном итоге вам нужно просто взглянуть на свой список и каждый элемент и указать некоторые критерии, чтобы решить, какой метод вызвать. Как только вы решите, что можете вызывать метод как таковой

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});
0 голосов
/ 20 февраля 2012

Вы должны использовать это:

MethodInfo.Invoke(...)

А вот как: http://msdn.microsoft.com/en-us/library/a89hcwhh.aspx

0 голосов
/ 20 февраля 2012

Вам лучше прочитать некоторые статьи об ООП и попытаться создать более дружественную архитектуру для вашего приложения. Тогда все ваши вопросы будут более понятными - и будут отличаться от текущих.

...