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

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

Linda Hamilton
リリース: 2025-01-25 05:21:09
オリジナル
528 人が閲覧しました

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

リフレクションを使用して C# プライベート メソッドを呼び出す

プライベート メソッドを動的に呼び出す場合、特にメソッド名が入力値に基づいて変更される場合には、リフレクション テクノロジの使用が必要です。 GetMethod() デフォルトでは、メソッドはパブリック メソッドのみを取得し、プライベート メソッドを無視します。プライベート メソッドにアクセスするには、GetMethod() 関数に BindingFlags を追加します。

では、BindingFlags.NonPublic フラグと BindingFlags.Instance フラグを組み合わせる必要があります。これには、現在のインスタンスのスコープ内の非パブリック (プライベート) メソッドが含まれます。

変更されたコードは次のとおりです:

MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType, BindingFlags.NonPublic | BindingFlags.Instance);
dynMethod.Invoke(this, new object[] { methodParams });
ログイン後にコピー

このコードはプライベート メソッド「Draw_」を正常に取得し、指定されたパラメーターを使用して呼び出します。

リフレクションと BindingFlags の詳細については、次のドキュメントを参照してください:

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート