.NET Framework 클래스 라이브러리
Assembly..::.Load 메서드 (String)

업데이트: 2007년 11월

긴 형식의 이름으로 지정된 어셈블리를 로드합니다.

네임스페이스:  System.Reflection
어셈블리:  mscorlib(mscorlib.dll)

구문

Visual Basic(선언)
Public Shared Function Load ( _
    assemblyString As String _
) As Assembly
Visual Basic (사용법)
Dim assemblyString As String
Dim returnValue As [Assembly]

returnValue = Assembly.Load(assemblyString)
C#
public static Assembly Load(
    string assemblyString
)
Visual C++
public:
static Assembly^ Load(
    String^ assemblyString
)
J#
public static Assembly Load(
    String assemblyString
)
JScript
public static function Load(
    assemblyString : String
) : Assembly

매개 변수

assemblyString
형식: System..::.String

긴 형식의 어셈블리 이름입니다.

반환 값

형식: System.Reflection..::.Assembly

로드된 어셈블리입니다.

예외

예외상황
ArgumentNullException

assemblyStringnullNothingnullptrNull 참조(Visual Basic의 경우 Nothing)인 경우

ArgumentException

assemblyString이 길이가 0인 문자열인 경우

FileNotFoundException

assemblyString을 찾을 수 없는 경우

FileLoadException

찾은 파일을 로드할 수 없는 경우

BadImageFormatException

assemblyString이 올바른 어셈블리가 아닌 경우

- 또는 -

버전 2.0 이상의 공용 언어 런타임이 현재 로드되어 있으며 assemblyString이 이후 버전으로 컴파일된 경우

설명

assemblyString에서 전체 어셈블리 이름을 지정하고 단순한 이름과 일치하는 첫 번째 어셈블리에 다른 버전, 문화권 또는 공개 키 토큰이 있는 경우 FileLoadException이 throw됩니다. 로더는 단순한 이름과 일치하는 다른 어셈블리를 계속 검색하지 않습니다.

어셈블리에 특정 권한을 부여할지 여부는 증명 정보를 기반으로 합니다. 어셈블리와 보안 증명 정보 병합에 대한 규칙은 다음과 같습니다.

  • Evidence 매개 변수를 지정하지 않고 Load 메서드를 사용하면 어셈블리가 로더에서 제공하는 증명 정보와 함께 로드됩니다.

  • Evidence 매개 변수를 지정하고 Load 메서드를 사용하면 증명 정보가 병합됩니다. Load 메서드에 인수로 제공되는 증명 정보는 로더에서 제공하는 증명 정보에 우선합니다.

  • Byte[] 매개 변수와 함께 Load 메서드 오버로드를 사용하여 COFF(Common Object File Format) 이미지를 로드하면 호출 어셈블리에서 증명 정보가 상속됩니다. 이는 .NET Framework 버전 1.1 SP1(서비스 팩 1)과 이후 릴리스에 적용됩니다.

    참고:

    .NET Framework 버전 1.0 및 버전 1.1(SP1이 설치되지 않음)에서 Byte[] 매개 변수와 함께 Load 메서드 오버로드를 사용하여 COFF 이미지를 로드하면 증명 정보가 결합됩니다. Zone, UrlSite는 호출 어셈블리에서 상속되며 HashStrongName은 COFF 어셈블리에서 가져옵니다.

  • Byte[] 매개 변수 및 Evidence와 함께 Load 메서드를 사용하여 COFF 이미지를 로드하면 제공된 증명 정보만 사용됩니다. 호출 어셈블리 및 COFF 이미지의 증명 정보는 무시됩니다.

C++ 실행 파일에서 리플렉션하면 BadImageFormatException이 throw될 수 있습니다. 이 문제는 주로 C++ 컴파일러가 실행 파일에서 재배치 주소 또는 .reloc 섹션을 제거하기 때문에 발생합니다. C++ 실행 파일의 .reloc 주소를 유지하려면 링크할 때 /fixed:no를 지정합니다.

.NET Framework 버전 2.0에서 프로세서 아키텍처를 어셈블리 ID에 추가하여 어셈블리 이름 문자열의 일부로 지정할 수 있습니다. 예를 들면 "ProcessorArchitecture=msil"과 같습니다. 그러나 어셈블리 이름을 지정하는 데 권장되는 방법은 AssemblyName 개체를 만들고 Load 메서드의 해당 오버로드에 전달하는 것입니다. AssemblyName..::.ProcessorArchitecture를 참조하십시오.

예제

다음 예제에서는 정규화된 이름으로 지정된 어셈블리를 로드하고 지정된 어셈블리에 들어 있는 모든 형식을 나열합니다. 이 코드 예제를 실행하려면 정규화된 어셈블리 이름을 사용해야 합니다. 정규화된 어셈블리 이름을 가져오는 방법에 대한 자세한 내용은 어셈블리 이름을 참조하십시오.

Visual Basic
Imports System
Imports System.Reflection

Class Class1
    Public Shared Sub Main()
        ' You must supply a valid fully qualified assembly name.            
        Dim SampleAssembly As [Assembly] = _
            [Assembly].Load("SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3")
        Dim oType As Type
        ' Display all the types contained in the specified assembly.
        For Each oType In SampleAssembly.GetTypes()
            Console.WriteLine(oType.Name)
        Next oType
    End Sub    'LoadSample
End Class 'Class1
C#
using System;
using System.Reflection;

class Class1
{
    public static void Main()
    {
        // You must supply a valid fully qualified assembly name.            
        Assembly SampleAssembly = Assembly.Load
            ("SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3");
        // Display all the types contained in the specified assembly.
        foreach (Type oType in SampleAssembly.GetTypes()) {
            Console.WriteLine(oType.Name);
        }
    }
}
Visual C++
using namespace System;
using namespace System::Collections;
using namespace System::Reflection;
int main()
{
    // You must supply a valid fully qualified assembly name.            
    Assembly^ SampleAssembly = Assembly::Load
        ( "SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3" );
    array<Type^>^ Types = SampleAssembly->GetTypes();

    // Display all the types contained in the specified assembly.
    IEnumerator^ myEnum = Types->GetEnumerator();
    Type^ oType;
    while ( myEnum->MoveNext() )
    {
        oType = safe_cast<Type^>(myEnum->Current);
        Console::WriteLine( oType->Name );
    }
}

권한

플랫폼

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360

.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

3.5, 3.0, 2.0, 1.1, 1.0에서 지원

.NET Compact Framework

3.5, 2.0, 1.0에서 지원

XNA Framework

2.0, 1.0에서 지원
참고 항목

참조

기타 리소스

태그 :


Page view tracker