ホームページ >バックエンド開発 >C++ >C# でリフレクションを使用して、特定の属性を持つ「_bar」という名前のプライベート フィールドにアクセスするにはどうすればよいですか?

C# でリフレクションを使用して、特定の属性を持つ「_bar」という名前のプライベート フィールドにアクセスするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-21 23:01:14815ブラウズ

How Can I Access a Private Field Named

リフレクションを使用して .NET のプライベート フィールドにアクセスする

リフレクションは、.NET クラスの内部コンポーネントを検査し、対話するための堅牢なメカニズムを提供します。 頻繁に使用されるアプリケーションは、フィールドなどのプライベート メンバーにアクセスして変更します。この例では、カスタム [SomeAttribute] 属性でマークされた「_bar」という名前のプライベート フィールドを見つける方法を示します。

重要なのは、BindingFlags 列挙を使用することです。 このソリューションでは、以下に示すように、BindingFlags.NonPublic フラグと BindingFlags.Instance フラグを組み合わせます。

<code class="language-csharp">FieldInfo[] fields = myType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance);</code>

は、BindingFlags.NonPublic にプライベート フィールドを検索に含めるよう指示しますが、GetFields は検索をインスタンス フィールド (静的フィールドを除く) に制限します。 この対象を絞ったアプローチにより、「_bar」フィールドを見つけて、関連する属性を含むその詳細を確実に取得できます。BindingFlags.Instance

以上がC# でリフレクションを使用して、特定の属性を持つ「_bar」という名前のプライベート フィールドにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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