리플렉션을 사용하여 정적 메서드 호출
문제:
각각 정적 메소드를 포함하는 mySolution.Macros 네임스페이스 like:
public static class Indent { public static void Run() { // implementation } }
정적임에도 불구하고 리플렉션을 사용하여 이러한 메서드를 호출하는 것이 목표입니다.
해결책:
정적을 호출하려면 정적 특성을 유지하면서 리플렉션을 사용하는 메서드는 다음 접근 방식을 사용합니다.
foreach (var tempClass in macroClasses) { // Note that the first argument is ignored for static methods tempClass.GetMethod("Run").Invoke(null, null); }
문서에 언급된 대로 MethodInfo.Invoke의 경우 첫 번째 인수는 정적 메서드에 대해 중복되므로 null을 안전하게 전달할 수 있습니다.
바인딩 플래그:
설명에 제안된 대로 메서드를 호출할 때 바인딩 플래그를 지정해야 합니다.
tempClass.GetMethod("Run", BindingFlags.Public | BindingFlags.Static).Invoke(null, null);
이렇게 하면 메서드가 공개적이고 정적이며 적절한 호출에 필요합니다.
위 내용은 C#에서 리플렉션을 사용하여 정적 메서드를 호출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!