다음을 통해 공유


Assembly.Load 메서드

정의

어셈블리를 로드합니다.

오버로드

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

선택적으로 기호를 포함하고 보안 컨텍스트의 원본을 지정하여 내보낸 어셈블리를 포함하는 COFF(공용 개체 파일 형식) 기반 이미지로 어셈블리를 로드합니다.

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

필요에 따라 어셈블리에 대한 기호 및 증명 정보를 포함하여 내보낸 어셈블리를 포함하는 COFF(공용 개체 파일 형식) 기반 이미지로 어셈블리를 로드합니다.

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

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

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

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

Load(Byte[])

내보낸 어셈블리를 포함하는 COFF(공용 개체 파일 형식) 기반 이미지로 어셈블리를 로드합니다.

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 가 현재 로드된 런타임에 유효한 어셈블리가 아닌 경우

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

securityEvidence 가 아닙니다 null. 기본적으로 레거시 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

어셈블리를 로드하기 위한 증거입니다.

반환

로드된 어셈블리입니다.

특성

예외

assemblyStringnull입니다.

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을(를) 참조하세요.

추가 정보

  • Evidence
  • 런타임에서 어셈블리를 찾는 방법

적용 대상

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

어셈블리를 로드하기 위한 증거입니다.

반환

로드된 어셈블리입니다.

특성

예외

assemblyRefnull입니다.

assemblyRef 찾을 수 없습니다.

assemblyRef 가 현재 로드된 런타임에 유효한 어셈블리가 아닌 경우

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

-또는-

assemblyRefloadFromRemoteSources에< 따라 비활성화된 위치를 지정합니다>.

설명

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

원격 위치에서 어셈블리를 로드하는 경우를 참조 <loadFromRemoteSources> 하세요.

메모

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

증거를 기반으로 어셈블리에 특정 권한이 부여되는지 여부가 결정됩니다. 어셈블리 및 보안 증거 병합에 대한 규칙은 다음과 같습니다.

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

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

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

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

메모

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

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

추가 정보

  • Evidence
  • 런타임에서 어셈블리를 찾는 방법

적용 대상

Load(Byte[])

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

내보낸 어셈블리를 포함하는 COFF(공용 개체 파일 형식) 기반 이미지로 어셈블리를 로드합니다.

public:
 static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")]
public static System.Reflection.Assembly Load(byte[] rawAssembly);
public static System.Reflection.Assembly Load(byte[] rawAssembly);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")>]
static member Load : byte[] -> System.Reflection.Assembly
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
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

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

반환

로드된 어셈블리입니다.

예외

assemblyStringnull입니다.

assemblyString 는 길이가 0인 문자열입니다.

assemblyString 찾을 수 없습니다.

발견된 파일을 로드할 수 없습니다.

assemblyString 가 현재 로드된 런타임에 유효한 어셈블리가 아닌 경우

예제

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

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

설명

.NET Core/.NET 5 이상에서는 대상 어셈블리가 설정된 경우 현재 AssemblyLoadContext 또는 컨텍스트에 AssemblyLoadContext.CurrentContextualReflectionContext 로드됩니다. 어셈블리 로드에 대한 자세한 내용은 관리되는 어셈블리 로드 알고리즘을 참조하세요.

올바른 어셈블리를 로드하려면 긴 형식의 어셈블리 이름을 전달하여 메서드를 호출 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
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

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

반환

로드된 어셈블리입니다.

예외

assemblyRefnull입니다.

assemblyRef 찾을 수 없습니다.

발견된 파일을 로드할 수 없습니다.

-또는-

.NET Framework에만 해당: assemblyRefloadFromRemoteSources에< 따라 비활성화된 위치를 지정합니다>.

참고: 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

설명

.NET Core/.NET 5 이상에서는 대상 어셈블리가 설정된 경우 현재 AssemblyLoadContext 또는 컨텍스트에 AssemblyLoadContext.CurrentContextualReflectionContext 로드됩니다. 어셈블리 로드에 대한 자세한 내용은 관리되는 어셈블리 로드 알고리즘을 참조하세요.

메모

.NET Framework만 해당: 원격 위치에서 어셈블리를 로드하는 방법에 대한 자세한 내용은 다음을 참조하세요 <loadFromRemoteSources>.

메모

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

메모

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

추가 정보

  • AssemblyName
  • 런타임에서 어셈블리를 찾는 방법

적용 대상

Load(Byte[], Byte[])

Source:
Assembly.cs
Source:
Assembly.cs
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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")]
public static System.Reflection.Assembly Load(byte[] rawAssembly, byte[]? rawSymbolStore);
public static System.Reflection.Assembly Load(byte[] rawAssembly, byte[] rawSymbolStore);
public static System.Reflection.Assembly Load(byte[] rawAssembly, byte[]? rawSymbolStore);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")>]
static member Load : byte[] * byte[] -> System.Reflection.Assembly
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 가 현재 로드된 런타임에 유효한 어셈블리가 아닌 경우

설명

.NET Core/5 이상에서는 대상 어셈블리가 현재 AssemblyLoadContext어셈블리에 로드됩니다. 어셈블리 로드에 대한 자세한 내용은 관리되는 어셈블리 로드 알고리즘을 참조하세요.

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

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

적용 대상