[この記事は18年前に書かれました]
privateで定義されているメソッドを呼びたい場合は、フィールドの場合と同様にInvokeMemberを使用します。 メソッドの引数は、Objectの配列で渡し、結果もObjectで受け取ります。
class Test { private string str; private string method(string str1, string str2) { return str1 + str2; } } // method()のコール Object ob2 = test.GetType().InvokeMember("method", BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Instance, null, test, new Object[] { "test1", "test2" }); Console.WriteLine(ob2);
出力:test1test2
コメント