Długi tytuł, ale chciałem, aby był konkretny. Tytuł jest naprawdę pytaniem. Mimo że metoda wywołująca InvokeMember
ma parametr out
i przypisuje wartość temu parametrowi, nie mogę pobrać tej wartości. Oto kod Początkowo byłem przy użyciu:Dlaczego nie mogę pobrać wartości dla parametrów typu out lub ref używając Type.InvokeMember?
string parameter = "";
int result = Convert.ToInt32(typeof(Ability).InvokeMember(selectedMove, BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Static, null, null, new object[] { parameter }));
Zmieniłem to ten, który teraz sprawia, że działa prawidłowo, ale nie wiem dlaczego:
object[] args = new object[1]; //necessary to retrieve ref/out parameter
int result = Convert.ToInt32(typeof(Ability).InvokeMember(selectedMove, BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Static, null, null, args));
wow ... to właśnie uratowałeś mi dzięki. –