[この記事は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
コメント