Reflection을 사용한 C#의 동적 클래스 액세스
C# 개발자는 문자열 표현을 기반으로 하는 동적 클래스 액세스가 필요한 시나리오에 자주 직면합니다. 이 문서에서는 리플렉션을 활용하여 문자열에서 클래스 참조를 검색하는 방법을 보여줍니다.
클래스 이름을 나타내는 문자열(예: "MyClass")이 있고 해당 클래스 내에서 메서드를 호출해야 한다고 가정해 보세요. Reflection이 솔루션을 제공합니다.
핵심 기능은 Type.GetType
메소드에 의존합니다. 예는 다음과 같습니다.
<code class="language-csharp">using System; using System.Reflection; public class Example { public static void Main(string[] args) { Type type = Type.GetType("MyClass"); // Get the Type object MethodInfo method = type.GetMethod("MyMethod", BindingFlags.Public | BindingFlags.Static); // Get the method method.Invoke(null, null); // Invoke the method } } public class MyClass { public static void MyMethod() { Console.WriteLine("MyMethod called!"); } }</code>
이 코드는 Type.GetType
을 사용하여 문자열에서 Type
객체를 얻습니다. 그런 다음 GetMethod
는 지정된 정적 메서드를 검색하고 Invoke
는 이를 실행합니다.
이 예제에서는 공개 정적 메서드를 사용합니다. BindingFlags
을 조정하면 다른 메소드 유형에 대한 액세스가 허용됩니다(예: 개인 인스턴스 메소드의 경우 BindingFlags.Instance | BindingFlags.NonPublic
).
Type.GetType
및 기타 반영 방법을 이해하면 C# 클래스와의 동적 상호 작용이 가능해지며 애플리케이션에 상당한 유연성이 제공됩니다.
위 내용은 리플렉션을 사용하여 문자열에서 C# 클래스 참조를 어떻게 얻을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!