>백엔드 개발 >C++ >이름과 클래스 이름만 알고 .NET 어셈블리를 로드하고 인스턴스화하려면 어떻게 해야 합니까?

이름과 클래스 이름만 알고 .NET 어셈블리를 로드하고 인스턴스화하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-19 09:11:09328검색

How Can I Load and Instantiate a .NET Assembly Knowing Only Its Name and Class Name?

.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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.