privateなメソッドをコール

C#

[この記事は15年前に書かれました]

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

コメント

タイトルとURLをコピーしました