리플렉션을 사용하여 비공개 클래스 멤버 액세스
문제:
Reflection을 사용하여 클래스의 비공개 필드(예: 아래 코드의 _bar
필드)에 액세스할 수 있습니까?
<code class="language-csharp">class Foo { [SomeAttribute] private string _bar; public string BigBar { get { return this._bar; } } }</code>
해결책:
예, Reflection은 비공개 필드에 대한 액세스를 허용합니다. BindingFlags
:
<code class="language-csharp">FieldInfo[] fields = myType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance);</code>
BindingFlags.NonPublic
에는 비공개 멤버(예: 개인 필드)가 포함되며 BindingFlags.Instance
는 인스턴스 필드만 반환되도록 합니다. 그러면 fields
배열에 비공개 _bar
필드가 포함됩니다.
위 내용은 리플렉션이 프라이빗 클래스 필드에 액세스할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!