Assembly.Load 메서드

정의

어셈블리를 로드합니다.

오버로드

Load(Byte[], Byte[], SecurityContextSource)

생성된 어셈블리가 들어 있고 경우에 따라 기호도 포함하고 보안 컨텍스트의 소스도 지정하는 COFF(공용 개체 파일 형식) 기반 이미지를 사용하여 어셈블리를 로드합니다.

Load(Byte[], Byte[], Evidence)
사용되지 않음.

생성된 어셈블리가 들어 있고 경우에 따라 어셈블리에 대한 기호 및 증명 정보도 포함하는 COFF(공용 개체 파일 형식) 기반 이미지를 사용하여 어셈블리를 로드합니다.

Load(String, Evidence)
사용되지 않음.

표시 이름과 제공된 증명 정보를 사용하여 어셈블리를 로드합니다.

Load(AssemblyName, Evidence)
사용되지 않음.

해당 AssemblyName이 지정된 어셈블리를 로드합니다. 제공된 증거를 사용하여 어셈블리가 로드됩니다.

Load(Byte[])

내보낸 어셈블리가 포함된 COFF(Common Object File Format) 기반 이미지를 사용하여 어셈블리를 로드합니다.

Load(String)

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

Load(AssemblyName)

해당 AssemblyName이 지정된 어셈블리를 로드합니다.

Load(Byte[], Byte[])

생성된 어셈블리가 들어 있고 경우에 따라 어셈블리에 대한 기호도 포함하는 COFF(공용 개체 파일 형식) 기반 이미지를 사용하여 어셈블리를 로드합니다.

Load(Byte[], Byte[], SecurityContextSource)

생성된 어셈블리가 들어 있고 경우에 따라 기호도 포함하고 보안 컨텍스트의 소스도 지정하는 COFF(공용 개체 파일 형식) 기반 이미지를 사용하여 어셈블리를 로드합니다.

public:
 static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly, cli::array <System::Byte> ^ rawSymbolStore, System::Security::SecurityContextSource securityContextSource);
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, System.Security.SecurityContextSource securityContextSource);
static member Load : byte[] * byte[] * System.Security.SecurityContextSource -> System.Reflection.Assembly
Public Shared Function Load (rawAssembly As Byte(), rawSymbolStore As Byte(), securityContextSource As SecurityContextSource) As Assembly

매개 변수

rawAssembly
Byte[]

내보낸 어셈블리가 포함된 COFF 기반 이미지인 바이트 배열입니다.

rawSymbolStore
Byte[]

어셈블리의 기호를 나타내는 원시 바이트가 포함된 바이트 배열입니다.

securityContextSource
SecurityContextSource

보안 컨텍스트의 소스입니다.

반환

로드된 어셈블리입니다.

예외

rawAssemblynull입니다.

rawAssembly 는 현재 로드된 런타임에 유효한 어셈블리가 아닙니다.

securityContextSource 값이 열거형 값 중 하나가 아닙니다.

설명

어셈블리 보안 컨텍스트에 대 한 지정된 된 소스를 사용 하 여 호출자의 애플리케이션 도메인에 로드 됩니다. 가 지정된 경우 rawSymbolStore 어셈블리의 기호를 나타내는 원시 바이트도 로드됩니다.

적용 대상

Load(Byte[], Byte[], Evidence)

주의

This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

생성된 어셈블리가 들어 있고 경우에 따라 어셈블리에 대한 기호 및 증명 정보도 포함하는 COFF(공용 개체 파일 형식) 기반 이미지를 사용하여 어셈블리를 로드합니다.

public:
 static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly, cli::array <System::Byte> ^ rawSymbolStore, System::Security::Policy::Evidence ^ securityEvidence);
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, System.Security.Policy.Evidence securityEvidence);
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, System.Security.Policy.Evidence securityEvidence);
static member Load : byte[] * byte[] * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member Load : byte[] * byte[] * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function Load (rawAssembly As Byte(), rawSymbolStore As Byte(), securityEvidence As Evidence) As Assembly

매개 변수

rawAssembly
Byte[]

내보낸 어셈블리가 포함된 COFF 기반 이미지인 바이트 배열입니다.

rawSymbolStore
Byte[]

어셈블리의 기호를 나타내는 원시 바이트가 포함된 바이트 배열입니다.

securityEvidence
Evidence

어셈블리 로드에 사용할 증명 정보입니다.

반환

로드된 어셈블리입니다.

특성

예외

rawAssemblynull입니다.

rawAssembly 는 현재 로드된 런타임에 유효한 어셈블리가 아닙니다.

어셈블리 또는 모듈이 서로 다른 두 증명 정보로 두 번 로드되었습니다.

securityEvidencenull가 아닙니다. 기본적으로 레거시 CAS 정책은 .NET Framework 4에서 사용하도록 설정되지 않습니다. 사용하도록 설정 securityEvidence 되지 않은 경우 이어야 합니다null.

설명

이 메서드 오버로드는 항상 자체 격리된 부하 컨텍스트에서 새 Assembly 개체를 만듭니다.

제공된 증거를 사용하여 어셈블리가 로드됩니다. 어셈블리의 기호를 나타내는 원시 바이트도 로드됩니다.

어셈블리에 대한 특정 권한 부여 여부는 증명 정보를 바탕으로 합니다. 어셈블리 및 보안 증거 병합에 대한 규칙은 다음과 같습니다.

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

  • 매개 변수와 함께 메서드를 LoadEvidence 사용하면 증명 정보가 병합됩니다. 메서드에 대한 인수 Load 로 제공된 증거 조각은 로더가 제공한 증거 조각을 대체합니다.

  • 매개 변수와 Load 함께 메서드 오버로드를 Byte[] 사용하여 COFF 이미지를 로드하는 경우 호출 어셈블리에서 증명 정보가 상속됩니다.

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

동일한 어셈블리에서 메서드를 Load 두 번 이상 호출하지만 다른 증명 정보가 지정된 경우 다른 증명 정보 사양의 같음과 무결성을 확인할 수 없으므로 공용 언어 런타임은 을 throw FileLoadException 하지 않습니다. 첫 번째 성공 증거는 사용되는 증거입니다.

적용 대상

Load(String, Evidence)

주의

This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

표시 이름과 제공된 증명 정보를 사용하여 어셈블리를 로드합니다.

public:
 static System::Reflection::Assembly ^ Load(System::String ^ assemblyString, System::Security::Policy::Evidence ^ assemblySecurity);
public static System.Reflection.Assembly Load (string assemblyString, System.Security.Policy.Evidence assemblySecurity);
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly Load (string assemblyString, System.Security.Policy.Evidence assemblySecurity);
static member Load : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member Load : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function Load (assemblyString As String, assemblySecurity As Evidence) As Assembly

매개 변수

assemblyString
String

어셈블리의 표시 이름입니다.

assemblySecurity
Evidence

어셈블리 로드에 사용할 증명 정보입니다.

반환

로드된 어셈블리입니다.

특성

예외

assemblyString이(가) null인 경우

assemblyString 가 없는 경우

assemblyString 는 현재 로드된 런타임에 유효한 어셈블리가 아닙니다.

찾은 파일을 로드할 수 없습니다.

또는

어셈블리 또는 모듈이 서로 다른 두 증명 정보로 두 번 로드되었습니다.

설명

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

어셈블리에 대한 특정 권한 부여 여부는 증명 정보를 바탕으로 합니다. 어셈블리 및 보안 증거 병합에 대한 규칙은 다음과 같습니다.

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

  • 매개 변수와 함께 메서드를 LoadEvidence 사용하면 증명 정보가 병합됩니다. 메서드에 대한 인수 Load 로 제공된 증거 조각은 로더가 제공한 증거 조각을 대체합니다.

  • 매개 변수와 Load 함께 메서드 오버로드를 Byte[] 사용하여 COFF(공용 개체 파일 형식) 이미지를 로드하는 경우 호출 어셈블리에서 증명 정보가 상속됩니다.

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

동일한 어셈블리에서 이 메서드를 두 번 이상 호출하지만 다른 증명 정보가 지정된 경우 다른 증명 정보 사양의 같음과 무결성을 확인할 수 없으므로 공용 언어 런타임은 을 throw FileLoadException 하지 않습니다. 첫 번째 성공 증거는 사용되는 증거입니다.

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

추가 정보

적용 대상

Load(AssemblyName, Evidence)

주의

This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

해당 AssemblyName이 지정된 어셈블리를 로드합니다. 어셈블리는 제공된 증거를 사용하여 로드됩니다.

public:
 static System::Reflection::Assembly ^ Load(System::Reflection::AssemblyName ^ assemblyRef, System::Security::Policy::Evidence ^ assemblySecurity);
public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef, System.Security.Policy.Evidence assemblySecurity);
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef, System.Security.Policy.Evidence assemblySecurity);
static member Load : System.Reflection.AssemblyName * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member Load : System.Reflection.AssemblyName * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function Load (assemblyRef As AssemblyName, assemblySecurity As Evidence) As Assembly

매개 변수

assemblyRef
AssemblyName

로드될 어셈블리를 설명하는 개체입니다.

assemblySecurity
Evidence

어셈블리 로드에 사용할 증명 정보입니다.

반환

로드된 어셈블리입니다.

특성

예외

assemblyRef이(가) null인 경우

assemblyRef 가 없는 경우

assemblyRef 는 현재 로드된 런타임에 유효한 어셈블리가 아닙니다.

어셈블리 또는 모듈이 서로 다른 두 증명 정보로 두 번 로드되었습니다.

또는

assemblyRef은 원격 어셈블리를 지정하지만 원격 어셈블리에서 코드를 실행하는 기능은 사용할 수 없습니다. <loadFromRemoteSources>를 확인하세요.

설명

FileLoadException 는 전체 어셈블리 이름을 지정하고 단순 이름과 일치하는 첫 번째 어셈블리에 다른 버전, 문화권 또는 공개 키 토큰이 있는 경우 assemblyRef throw됩니다. 로더는 단순 이름과 일치하는 다른 어셈블리를 계속 검색하지 않습니다. .NET Framework 4부터 원격 어셈블리의 코드 실행은 기본적으로 사용하지 않도록 설정되어 있으므로 원격 어셈블리를 FileLoadException 지정하면 assemblyRef 도 throw됩니다. 원격 위치에서 로드된 코드 실행을 사용하도록 설정하려면 구성 요소를 사용할 <loadFromRemoteSources> 수 있습니다.

참고

속성 집합에만 CodeBaseAssemblyName 사용하지 마세요. 속성은 CodeBase 어셈블리 ID의 요소(예: 이름 또는 버전)를 제공하지 않으므로 메서드에서 Load 예상한 대로 ID별 로드 규칙에 따라 로드가 수행되지 않습니다. 대신, 어셈블리는 부하에서 규칙을 사용하여 로드됩니다. 부하에서 컨텍스트를 사용하는 경우의 단점에 대한 자세한 내용은 메서드 오버로드 또는 어셈블리 로드 모범 사례를 참조 Assembly.LoadFrom 하세요.

어셈블리에 대한 특정 권한 부여 여부는 증명 정보를 바탕으로 합니다. 어셈블리 및 보안 증거 병합에 대한 규칙은 다음과 같습니다.

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

  • 매개 변수와 함께 메서드를 LoadEvidence 사용하면 증명 정보 조각이 병합됩니다. 메서드에 대한 인수 Load 로 제공된 증거 조각은 로더가 제공한 증거 조각을 대체합니다.

  • 매개 변수와 Load 함께 메서드 오버로드를 Byte[] 사용하여 COFF(공용 개체 파일 형식) 이미지를 로드하는 경우 호출 어셈블리에서 증명 정보가 상속됩니다.

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

참고

속성과 AssemblyName.CodeBase 속성이 모두 AssemblyName.Name 설정된 경우 어셈블리를 로드하려는 첫 번째 시도는 표시 이름(속성에서 반환된 버전, 문화권 등 포함)을 Assembly.FullName 사용합니다. 파일을 찾을 CodeBase 수 없는 경우 는 어셈블리를 검색하는 데 사용됩니다. 를 사용하여 CodeBase어셈블리를 찾은 경우 표시 이름이 어셈블리와 일치합니다. 일치가 실패하면 가 FileLoadException throw됩니다.

동일한 어셈블리에서 메서드를 Load 두 번 이상 호출하지만 다른 증명 정보가 지정된 경우 공용 언어 런타임은 다른 증거 사양의 같음과 무결성을 확인할 수 없으므로 을 throw FileLoadException 하지 않습니다. 첫 번째 성공 증거는 사용되는 증거입니다.

추가 정보

적용 대상

Load(Byte[])

Source:
Assembly.cs
Source:
Assembly.cs
Source:
Assembly.cs

내보낸 어셈블리가 포함된 COFF(Common Object File Format) 기반 이미지를 사용하여 어셈블리를 로드합니다.

public:
 static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly);
public static System.Reflection.Assembly Load (byte[] rawAssembly);
static member Load : byte[] -> System.Reflection.Assembly
Public Shared Function Load (rawAssembly As Byte()) As Assembly

매개 변수

rawAssembly
Byte[]

내보낸 어셈블리가 포함된 COFF 기반 이미지인 바이트 배열입니다.

반환

로드된 어셈블리입니다.

예외

rawAssemblynull입니다.

rawAssembly 는 현재 로드된 런타임에 유효한 어셈블리가 아닙니다.

설명

이 메서드 오버로드는 항상 자체 격리된 부하 컨텍스트에서 새 Assembly 개체를 만듭니다.

.NET Framework 전용: 이 메서드를 사용하여 로드되는 어셈블리의 신뢰 수준은 호출 어셈블리의 신뢰 수준과 동일합니다. 애플리케이션 도메인의 신뢰 수준 사용 하 여 바이트 배열에서 어셈블리를 로드 하려면 사용 된 Load(Byte[], Byte[], SecurityContextSource) 메서드 오버 로드 합니다. 바이트 배열을 사용하는 메서드의 오버로드 Load 와 함께 증명 정보를 사용하는 방법에 대한 자세한 내용은 메서드 오버로드를 Load(Byte[], Byte[], Evidence) 참조하세요.

적용 대상

Load(String)

Source:
Assembly.CoreCLR.cs
Source:
Assembly.CoreCLR.cs
Source:
Assembly.CoreCLR.cs

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

public:
 static System::Reflection::Assembly ^ Load(System::String ^ assemblyString);
public static System.Reflection.Assembly Load (string assemblyString);
static member Load : string -> System.Reflection.Assembly
Public Shared Function Load (assemblyString As String) As Assembly

매개 변수

assemblyString
String

긴 형식 또는 짧은 형식의 어셈블리 이름입니다.

반환

로드된 어셈블리입니다.

예외

assemblyString이(가) null인 경우

assemblyString 이 빈 문자열입니다.

assemblyString 가 없는 경우

찾은 파일을 로드할 수 없습니다.

assemblyString 는 현재 로드된 런타임에 유효한 어셈블리가 아닙니다.

예제

다음 예제에서는 정규화된 이름이 지정된 어셈블리를 로드하고 지정된 어셈블리에 포함된 모든 형식을 나열합니다. 참조 된 정규화 된 어셈블리 이름을 가져오는 방법에 대 한 내용은 어셈블리 이름합니다.

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 );
    }
}
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);
        }
    }
}
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

설명

올바른 어셈블리를 로드하려면 긴 형식의 어셈블리 이름을 전달하여 메서드를 호출 Load 하는 것이 좋습니다. 긴 형식의 어셈블리 이름은 버전, 문화권, 공개 키 토큰 및 선택적으로 프로세서 아키텍처와 함께 간단한 이름(예: System.dll 어셈블리의 경우 "시스템")으로 구성됩니다. 어셈블리의 FullName 속성에 해당합니다. 다음 예제에서는 긴 이름을 사용하여 .NET Framework 4에 대한 System.dll 어셈블리를 로드하는 방법을 보여 줍니다.

using System;
using System.Reflection;

public class Example
{
   public static void Main()
   {
      string longName = "system, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
      Assembly assem = Assembly.Load(longName);
      if (assem == null)
         Console.WriteLine("Unable to load assembly...");
      else
         Console.WriteLine(assem.FullName);
   }
}
// The example displays the following output:
//        system, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Imports System.Reflection

Module Example
   Public Sub Main()
      Dim longName As String = "system, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
      Dim assem As Assembly = Assembly.Load(longName)
      If assem Is Nothing Then
         Console.WriteLine("Unable to load assembly...")
      Else
         Console.WriteLine(assem.FullName)
      End If
   End Sub
End Module
' The example displays the following output:
'       system, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

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

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

추가 정보

적용 대상

Load(AssemblyName)

Source:
Assembly.CoreCLR.cs
Source:
Assembly.CoreCLR.cs
Source:
Assembly.CoreCLR.cs

해당 AssemblyName이 지정된 어셈블리를 로드합니다.

public:
 static System::Reflection::Assembly ^ Load(System::Reflection::AssemblyName ^ assemblyRef);
public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef);
static member Load : System.Reflection.AssemblyName -> System.Reflection.Assembly
Public Shared Function Load (assemblyRef As AssemblyName) As Assembly

매개 변수

assemblyRef
AssemblyName

로드될 어셈블리를 설명하는 개체입니다.

반환

로드된 어셈블리입니다.

예외

assemblyRef이(가) null인 경우

assemblyRef 가 없는 경우

찾은 파일을 로드할 수 없습니다.

또는

assemblyRef은 원격 어셈블리를 지정하지만 원격 어셈블리에서 코드를 실행하는 기능은 사용할 수 없습니다. <loadFromRemoteSources>를 확인하세요.

참고: Windows 스토어 앱용 .NET 또는 이식 가능한 클래스 라이브러리에서 기본 클래스 예외 를 IOException대신 catch합니다.

assemblyRef 는 현재 로드된 런타임에 유효한 어셈블리가 아닙니다.

예제

다음 예에서는 개체를 AssemblyName 인스턴스화하고 이를 사용하여 어셈블리를 로드합니다 sysglobal.dll . 그런 다음, 이 예제에서는 어셈블리의 공용 형식의 전체 이름을 표시합니다.

using System;
using System.Reflection;

public class Example
{
   public static void Main()
   {
      String fullName = "sysglobl, Version=4.0.0.0, Culture=neutral, " +
                        "PublicKeyToken=b03f5f7f11d50a3a, processor architecture=MSIL";
      var an = new AssemblyName(fullName);
      var assem = Assembly.Load(an);
      Console.WriteLine("Public types in assembly {0}:", assem.FullName);
      foreach (var t in assem.GetTypes())
         if (t.IsPublic)
            Console.WriteLine("   {0}", t.FullName);
   }
}
// The example displays the following output:
//   Public types in assembly sysglobl, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a:
//      System.Globalization.CultureAndRegionInfoBuilder
//      System.Globalization.CultureAndRegionModifiers
Imports System.Reflection

Module Example
   Public Sub Main()
      Dim fullName As String = "sysglobl, Version=4.0.0.0, Culture=neutral, " +
                               "PublicKeyToken=b03f5f7f11d50a3a, processor architecture=MSIL"
      Dim an As New AssemblyName(fullName)
      Dim assem As Assembly = Assembly.Load(an)
      Console.WriteLine("Public types in assembly {0}:", assem.FullName)
      For Each t As Type in assem.GetTypes()
         If t.IsPublic Then Console.WriteLine("   {0}", t.FullName)
      Next
   End Sub
End Module
' The example displays the following output:
'   Public types in assembly sysglobl, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a:
'      System.Globalization.CultureAndRegionInfoBuilder
'      System.Globalization.CultureAndRegionModifiers

설명

FileLoadException 는 전체 어셈블리 이름을 지정하고 단순 이름과 일치하는 첫 번째 어셈블리에 다른 버전, 문화권 또는 공개 키 토큰이 있는 경우 assemblyRef throw됩니다. 로더는 단순 이름과 일치하는 다른 어셈블리를 계속 검색하지 않습니다. .NET Framework 4부터 원격 어셈블리에서 코드 실행은 기본적으로 사용하지 않도록 설정되므로 원격 어셈블리를 FileLoadException 지정하는 경우에도 assemblyRef 이 throw됩니다. 원격 위치에서 로드된 코드 실행을 사용하도록 설정하려면 구성 요소를 사용할 <loadFromRemoteSources> 수 있습니다.

참고

속성 집합에만 CodeBaseAssemblyName 사용하지 마세요. 속성은 CodeBase 어셈블리 ID의 요소(예: 이름 또는 버전)를 제공하지 않으므로 메서드에서 Load 예상한 대로 ID별 로드 규칙에 따라 로드가 수행되지 않습니다. 대신, 어셈블리는 부하에서 규칙을 사용하여 로드됩니다. 부하에서 컨텍스트를 사용하는 경우의 단점에 대한 자세한 내용은 메서드 오버로드 또는 어셈블리 로드 모범 사례를 참조 Assembly.LoadFrom 하세요.

참고

속성과 AssemblyName.CodeBase 속성이 모두 AssemblyName.Name 설정된 경우 어셈블리를 로드하려는 첫 번째 시도는 표시 이름(속성에서 반환된 버전, 문화권 등 포함)을 Assembly.FullName 사용합니다. 파일을 찾을 CodeBase 수 없는 경우 는 어셈블리를 검색하는 데 사용됩니다. 를 사용하여 CodeBase어셈블리를 찾은 경우 표시 이름이 어셈블리와 일치합니다. 일치가 실패하면 가 FileLoadException throw됩니다.

추가 정보

적용 대상

Load(Byte[], Byte[])

Source:
Assembly.cs
Source:
Assembly.cs
Source:
Assembly.cs

생성된 어셈블리가 들어 있고 경우에 따라 어셈블리에 대한 기호도 포함하는 COFF(공용 개체 파일 형식) 기반 이미지를 사용하여 어셈블리를 로드합니다.

public:
 static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly, cli::array <System::Byte> ^ rawSymbolStore);
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[]? rawSymbolStore);
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore);
static member Load : byte[] * byte[] -> System.Reflection.Assembly
Public Shared Function Load (rawAssembly As Byte(), rawSymbolStore As Byte()) As Assembly

매개 변수

rawAssembly
Byte[]

내보낸 어셈블리가 포함된 COFF 기반 이미지인 바이트 배열입니다.

rawSymbolStore
Byte[]

어셈블리의 기호를 나타내는 원시 바이트가 포함된 바이트 배열입니다.

반환

로드된 어셈블리입니다.

예외

rawAssemblynull입니다.

rawAssembly 는 현재 로드된 런타임에 유효한 어셈블리가 아닙니다.

설명

이 메서드 오버로드는 항상 자체 격리된 부하 컨텍스트에서 새 Assembly 개체를 만듭니다.

.NET Framework 전용: 이 메서드를 사용하여 로드되는 어셈블리의 신뢰 수준은 호출 어셈블리의 신뢰 수준과 동일합니다. 애플리케이션 도메인의 신뢰 수준 사용 하 여 바이트 배열에서 어셈블리를 로드 하려면 사용 된 Load(Byte[], Byte[], SecurityContextSource) 메서드 오버 로드 합니다. 바이트 배열을 사용하는 메서드의 오버로드 Load 와 함께 증명 정보를 사용하는 방법에 대한 자세한 내용은 메서드 오버로드를 Load(Byte[], Byte[], Evidence) 참조하세요.

적용 대상