리플렉션을 사용하여 문자열에서 C# 클래스 참조 검색
C# 리플렉션은 런타임 유형 정보에 동적으로 액세스하고 조작하기 위한 강력한 메커니즘을 제공합니다. 여기에는 문자열 표현만을 사용하여 클래스 참조를 검색하는 것이 포함됩니다.
과정:
이 작업의 핵심 방법은 Type.GetType()
입니다. 이 메소드는 정규화된 유형 이름이 포함된 문자열을 받아들이고 해당 유형을 나타내는 Type
객체를 반환합니다.
예:
FooClass
이라는 클래스가 있다고 가정해 보겠습니다. Type
객체를 얻으려면:
<code class="language-csharp">string className = "FooClass"; Type type = Type.GetType(className);</code>
FooClass
내의 정적 메서드(예: MyMethod
)에 액세스하려면 GetMethod()
:
<code class="language-csharp">MethodInfo method = type.GetMethod("MyMethod", BindingFlags.Static | BindingFlags.Public);</code>
마지막으로 Invoke()
:
<code class="language-csharp">method.Invoke(null, null); // null for static methods, null for no parameters</code>
null
은 정적 메서드(인스턴스가 필요하지 않음)의 첫 번째 인수로 사용되고 두 번째 인수는 매개변수 배열(메서드가 매개변수를 사용하지 않으면 null)이라는 점을 기억하세요.
외부 어셈블리 처리:
위의 예에서는 FooClass
이 동일한 어셈블리 내에 있다고 가정합니다. 다른 어셈블리에 있는 유형의 경우 정규화된 유형 이름의 일부로 어셈블리 이름을 제공해야 합니다. 정확한 형식은 어셈블리 위치에 따라 다릅니다. Type.GetType()
메서드
추가 탐색:
C# 리플렉션에 대한 자세한 내용은 Type.GetType()
, MethodInfo.GetMethod()
및 MethodInfo.Invoke()
에 대한 Microsoft 공식 설명서를 참조하세요. 이러한 리소스는 포괄적인 세부 정보와 고급 사용 시나리오를 제공합니다.
위 내용은 리플렉션을 사용하여 C#의 문자열에서 클래스 참조를 어떻게 얻을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!