ホームページ >バックエンド開発 >C++ >C#の反射を使用してプライベートメソッドにアクセスするにはどうすればよいですか?

C#の反射を使用してプライベートメソッドにアクセスするにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-25 05:17:09528ブラウズ

How Can I Access Private Methods Using Reflection in C#?

リフレクションを活用してプライベートC#メソッドを呼び出すコードスニペットは

を使用して、名前でメソッドを見つけます。 ただし、デフォルトでは、プライベートメンバーを除外します。プライベートな方法を含めるには、

を呼び出すときは、特定の

を組み込む必要があります。 GetMethod() 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>
メソッド検索のカスタマイズの詳細については、

列挙のC#ドキュメントを参照してください。 このドキュメントでは、メソッド、フィールド、その他のクラスメンバーを介して検索を改善するための利用可能なすべてのフラグを包括的にリストします。

以上がC#の反射を使用してプライベートメソッドにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。