동적 형식 인수를 사용하여 일반 메서드 호출
C#에서 실행 시에만 알려진 형식 인수를 사용하여 일반 메서드를 호출하려면 리플렉션 기능을 활용해야 합니다. 원래의 문제는 특정 네임스페이스의 인터페이스를 반복하고 이러한 인터페이스를 인수로 사용하여 일반 메서드를 호출하는 것이었습니다.
이를 극복하려면 다음 단계를 따르세요.
예를 들어 다음을 고려해보세요. 코드:
// Get the generic method MethodInfo method = typeof(Test).GetMethod("CallMe"); // Get the list of interfaces in the specified namespace var types = typeof(Test).Assembly .GetTypes() .Where(t => t.Namespace == "Interfaces"); // Loop through the interfaces foreach (Type type in types) { // Create a specialized generic method MethodInfo genericMethod = method.MakeGenericMethod(type); // Invoke the method with no target or arguments genericMethod.Invoke(null, null); }
이 예에서는 "CallMe" 일반 메소드를 검색하고, 각 인터페이스 유형에 대한 특수 버전을 생성하고 이를 반영적으로 호출합니다.
참고: 인터페이스 유형이 다루는 문제가 그 자체로 제네릭인 경우 MakeGenericMethod 대신 MakeGenericType을 사용하여 적절한 유형 인수를 전달하세요.
위 내용은 리플렉션을 사용하여 C#에서 동적 형식 인수로 일반 메서드를 호출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!