Вызовите метод со ссылочными параметрами с помощью Reflection - PullRequest
3 голосов
/ 04 августа 2010

мне нужно вызвать метод void с отражением, у которого есть 2 нормальных параметра и третий параметр, который является ссылочным параметром.Я видел много сообщений о проблеме, и все предлагают использовать функцию GetMethod вместо InvokeMember.Я пробовал InvokeMember, и он работает, кто-то может объяснить мне, почему?

Class1 myreferenceparam = new Class1();
myobject.InvokeMember("MyMethod", BindingFlags.InvokeMethod | BindingFlags.Default, null, myobject, new object[] { myparam1, myparam2, myreferenceparam });
Response.Write(myreferenceparam.myfield);

Метод MyMethod редактировать поле myfield класса 1.Мой код правильный или я все равно должен использовать GetMethod?

1 Ответ

0 голосов
/ 04 августа 2010

GetMethod предоставит вам метаданные метода (MethodInfo), которые можно использовать для изучения метода и выполнения соответствующих действий.Например, если метод не существует или не может быть найден, вы получите MethodInfo как ноль и можете обработать это перед вызовом InvokeMemeber для метода.

InvokeMember, как следует из названия, просто вызовет метод, указанный в аргументах.Если метод не найден, он выдаст «MissingMethodException», поэтому вы теряете бит проверки, предложенный GetMethod.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...