리플렉션을 사용하여 이름으로 C# 클래스에 액세스
C# 리플렉션은 문자열 이름을 사용하여 클래스에 액세스하는 메커니즘을 제공합니다. 이는 직접 참조 없이 클래스와 동적으로 상호 작용하는 데 중요합니다. 이 프로세스의 핵심은 이후에 해당 메서드를 호출하기 위한 클래스 참조를 얻는 것입니다.
Type.GetType()
방법이 핵심입니다. 문자열(클래스 이름)을 사용하고 해당 클래스를 나타내는 Type
객체를 반환합니다. 예를 들어, "FooClass"라는 클래스에 대한 참조를 얻으려면:
<code class="language-csharp">Type t = Type.GetType("FooClass");</code>
Type
개체를 사용하면 GetMethod()
및 Invoke()
을 사용하여 정적 메서드를 호출할 수 있습니다. 예시:
<code class="language-csharp">MethodInfo method = t.GetMethod("MyMethod", BindingFlags.Static | BindingFlags.Public); method.Invoke(null, null);</code>
BindingFlags.Static
은 메소드가 정적임을 나타냅니다. BindingFlags.Public
공개적으로 액세스할 수 있음을 지정합니다.
이 접근 방식은 클래스가 현재 어셈블리 내에 있다는 가정 하에 작동합니다. 외부 어셈블리나 다른 소스에서 클래스에 액세스하는 등 더 복잡한 시나리오에는 대체 솔루션에 자세히 설명된 대로 더 정교한 접근 방식이 필요합니다.
위 내용은 리플렉션을 사용하여 C#에서 클래스 참조를 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!