리플렉션을 사용하여 C# 비공개 메서드 호출
프라이빗 메서드를 동적으로 호출하려면, 특히 입력 값에 따라 메서드 이름이 변경되는 경우 리플렉션 기술을 사용해야 합니다. GetMethod()
기본적으로 이 메서드는 공개 메서드만 가져오고 비공개 메서드는 무시합니다. 비공개 메서드에 액세스하려면 GetMethod()
함수에 BindingFlags
을 추가하세요.
에는 BindingFlags.NonPublic
및 BindingFlags.Instance
플래그를 결합해야 합니다. 여기에는 현재 인스턴스 범위 내에 비공개(비공개) 메서드가 포함됩니다.
수정된 코드는 다음과 같습니다.
<code class="language-csharp">MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType, BindingFlags.NonPublic | BindingFlags.Instance); dynMethod.Invoke(this, new object[] { methodParams });</code>
이 코드는 비공개 메소드 "Draw_"를 성공적으로 검색하고 제공된 매개변수를 사용하여 이를 호출합니다.
반영과 BindingFlags
에 대한 자세한 내용은 다음 문서를 참고하세요.
위 내용은 C#에서 반사를 사용하여 개인 메소드를 어떻게 호출 할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!