.NET 어셈블리 인스턴스를 동적으로 로드하고 생성
많은 개발 시나리오에서는 사용하려는 이름과 클래스만 알고 런타임에 .NET 어셈블리 인스턴스를 로드하고 생성해야 할 수도 있습니다. 이는 프로젝트에 참조를 명시적으로 추가하는 기존 참조와 다릅니다.
Assembly.LoadFrom 및 Activator.CreateInstance 사용
.NET 프레임워크는 이를 처리하는 도구를 제공합니다. Assembly.LoadFrom
어셈블리를 메모리에 로드하여 해당 유형에 액세스할 수 있도록 합니다. 그런 다음 Activator.CreateInstance
해당 어셈블리 내에 지정된 클래스의 인스턴스를 만듭니다.
코드 예시
어셈블리를 로드하고 클래스 인스턴스를 생성하는 방법은 다음과 같습니다.
<code class="language-csharp">Assembly assembly = Assembly.LoadFrom("library.dll"); Type type = assembly.GetType("Company.Project.Classname"); object instanceOfClassname = Activator.CreateInstance(type);</code>
알 수 없는 경로 처리
DLL의 정확한 경로를 알 수 없으면 Assembly.LoadFrom
이 작동하지 않습니다. 이런 상황에서는 Activator.CreateInstance(assemblyName, typeName)
을 시도해 볼 수 있습니다. 이 메서드는 어셈블리 및 유형 이름을 기반으로 유형을 찾으려고 시도합니다. 실패할 경우 어셈블리의 특정 디렉터리를 검색한 다음 Assembly.LoadFrom
를 사용하여 인스턴스화할 수 있습니다.
이 접근 방식을 사용하면 애플리케이션에 런타임 유연성이 추가되어 명시적인 사전 참조 없이 어셈블리와 상호 작용할 수 있습니다.
위 내용은 이름과 클래스 이름만 알고 .NET 어셈블리를 로드하고 인스턴스화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!