リフレクションを使用して .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 サイトの他の関連記事を参照してください。