リフレクションを利用して C# でプライベート インスタンス メソッドを呼び出す
同じオブジェクト内からプライベート メソッドを動的に呼び出すには、GetMethod()
を正しい BindingFlags
とともに使用する必要があります。 GetMethod()
のデフォルトの動作では、パブリック メンバーのみが返されます。
プライベート インスタンス メソッドにアクセスするには、コードを次のように変更します。
<code class="language-csharp">MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType, BindingFlags.NonPublic | BindingFlags.Instance); dynMethod.Invoke(this, new object[] { methodParams });</code>
BindingFlags
列挙型はメソッド検索を制御します。 BindingFlags.NonPublic
にはプライベート メソッドが含まれており、BindingFlags.Instance
によりインスタンス メソッド (静的メソッドではなく) をターゲットにしていることが保証されます。
以上がC# でリフレクションを使用してプライベート インスタンス メソッドを呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。