Мне нужно вызвать метод void с отражением, который имеет 2 нормальных параметра и третий параметр, который является ссылочным параметром. Я видел много сообщений о проблеме, и все предлагают использовать функцию GetMethod вместо InvokeMember. Я пробовал InvokeMember, и он работает, кто-то может объяснить мне почему?Вызвать метод со ссылочными параметрами с Reflection
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?
Рассмотрите динамические. Если вы используете C# 4, вы можете назначить объект «динамическому» и вызвать метод, как если бы он был известен. Ex dynamic d = ваш-неизвестный-объект; d.MyMethod (параметры); –