다음을 통해 공유


Assembly.LoadFrom 메서드

정의

어셈블리를 로드합니다.

오버로드

Name Description
LoadFrom(String, Byte[], AssemblyHashAlgorithm)
사용되지 않음.

파일 이름 또는 경로, 해시 값 및 해시 알고리즘이 지정된 어셈블리를 로드합니다.

LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm)
사용되지 않음.

파일 이름 또는 경로, 보안 증명 정보, 해시 값 및 해시 알고리즘이 지정된 어셈블리를 로드합니다.

LoadFrom(String)

파일 이름 또는 경로가 지정된 어셈블리를 로드합니다.

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

파일 이름 또는 경로를 지정하고 보안 증명 정보를 제공하는 어셈블리를 로드합니다.

설명

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

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

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

주의

LoadFrom with a custom AssemblyHashAlgorithm is obsolete. Use overloads without an AssemblyHashAlgorithm.

파일 이름 또는 경로, 해시 값 및 해시 알고리즘이 지정된 어셈블리를 로드합니다.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")]
[System.Obsolete("LoadFrom with a custom AssemblyHashAlgorithm is obsolete. Use overloads without an AssemblyHashAlgorithm.", DiagnosticId="SYSLIB0056", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public static System.Reflection.Assembly LoadFrom(string assemblyFile, byte[]? hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")]
public static System.Reflection.Assembly LoadFrom(string assemblyFile, byte[]? hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
public static System.Reflection.Assembly LoadFrom(string assemblyFile, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
public static System.Reflection.Assembly LoadFrom(string assemblyFile, byte[]? hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")>]
[<System.Obsolete("LoadFrom with a custom AssemblyHashAlgorithm is obsolete. Use overloads without an AssemblyHashAlgorithm.", DiagnosticId="SYSLIB0056", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
static member LoadFrom : string * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")>]
static member LoadFrom : string * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
static member LoadFrom : string * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String, hashValue As Byte(), hashAlgorithm As AssemblyHashAlgorithm) As Assembly

매개 변수

assemblyFile
String

어셈블리의 매니페스트를 포함하는 파일의 이름 또는 경로입니다.

hashValue
Byte[]

계산된 해시 코드의 값입니다.

hashAlgorithm
AssemblyHashAlgorithm

파일을 해시하고 강력한 이름을 생성하는 데 사용되는 해시 알고리즘입니다.

반품

로드된 어셈블리입니다.

특성

예외

.NET Core 및 .NET 5+만: 모든 경우에.

assemblyFilenull입니다.

assemblyFile 를 찾을 수 없거나 로드하려는 모듈에서 파일 이름 확장명을 지정하지 않습니다.

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

-또는-

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

assemblyFile 는 현재 로드된 런타임에 유효한 어셈블리가 아닙니다. 예를 들어 64비트 프로세스의 32비트 어셈블리입니다.

"file://"로 시작하지 않는 코드베이스가 필요 WebPermission없이 지정되었습니다.

assemblyFile 매개 변수는 빈 문자열("")입니다.

어셈블리 이름이 시스템 정의 최대 길이를 초과합니다.

설명

이 API는 .NET Core/.NET 5 이상에서 지원되지 않습니다. 이 메서드는 호출할 때 throw됩니다 NotSupportedException . LoadFrom(String)를 대신 사용하세요.

매개 변수는 이 assemblyFile 스케이프 문자가 없는 URI를 참조해야 합니다. 이 메서드는 URI의 모든 잘못된 문자에 대해 이스케이프 문자를 제공합니다.

메모

FTP(파일 전송 프로토콜)는 지원되지 않습니다. 제공된 assemblyFile URI가 FTP 주소이면 어셈블리가 로드되지 않습니다. 예외가 던져지지 않습니다.

assemblyFile 는 절대 또는 현재 디렉터리에 상대적일 수 있습니다.

어셈블리를 세 가지 컨텍스트 중 하나로 로드하거나 컨텍스트 없이 로드할 수 있습니다.

  • 로드 컨텍스트에는 전역 어셈블리 캐시, 런타임이 호스트되는 경우 호스트 어셈블리 저장소 또는 ApplicationBase 애플리케이션 도메인의 PrivateBinPath 검색에서 찾은 어셈블리가 포함됩니다. 대부분의 메서드 오버로드는 어셈블리를 Load 이 컨텍스트로 로드합니다.

  • 로드-원본 컨텍스트에는 사용자가 검색에 포함되지 않은 경로를 제공한 어셈블리가 포함됩니다. LoadFrom, CreateInstanceFrom경로 ExecuteAssembly 별로 로드하는 메서드의 예입니다.

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

  • 리플렉션 전용 컨텍스트에는 메서드와 ReflectionOnlyLoadFrom 함께 로드된 어셈블리가 ReflectionOnlyLoad 포함되어 있습니다. 이러한 컨텍스트의 코드는 실행할 수 없습니다.

  • 사용자가 어셈블리를 생성하거나 찾은 경우 컨텍스트가 아닙니다. 어셈블리를 포함하는 바이트 배열을 지정하는 메서드의 Load 오버로드를 사용하여 로드된 어셈블리와 리플렉션 내보내기를 사용하여 만들어지고 디스크에 저장되지 않은 임시 동적 어셈블리에 적용됩니다.

로드-원본 컨텍스트를 사용하면 검색에 포함되지 않은 경로에서 어셈블리를 로드할 수 있지만 경로 정보가 컨텍스트에서 유지 관리되기 때문에 해당 경로에 대한 종속성을 찾아서 로드할 수 있습니다.

메서드에는 LoadFrom 다음과 같은 단점이 있습니다. 대신 Load을 사용하는 것이 좋습니다.

  • ID가 동일한 어셈블리가 이미 로드된 LoadFrom 경우 다른 경로를 지정한 경우에도 로드된 어셈블리를 반환합니다.

  • 어셈블리가 로드되고 LoadFrom나중에 로드 컨텍스트의 어셈블리가 표시 이름으로 동일한 어셈블리를 로드하려고 하면 로드 시도가 실패합니다. 어셈블리가 역직렬화될 때 발생할 수 있습니다.

  • 어셈블리가 로드되고 LoadFrom검색 경로에 ID가 동일하지만 위치 InvalidCastException가 다른 어셈블리가 포함된 경우 , MissingMethodException또는 다른 예기치 않은 동작이 발생할 수 있습니다.

  • LoadFrom은/는 지정된 경로에서 FileIOPermissionAccess.ReadFileIOPermissionAccess.PathDiscovery를 요구하거나 WebPermission를 요구합니다.

  • 네이티브 이미지가 있는 assemblyFile경우 사용되지 않습니다. 어셈블리를 도메인 중립으로 로드할 수 없습니다.

어셈블리는 로더가 제공하는 증명 정보로 로드됩니다.

적용 대상

LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm)

주의

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

파일 이름 또는 경로, 보안 증명 정보, 해시 값 및 해시 알고리즘이 지정된 어셈블리를 로드합니다.

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

매개 변수

assemblyFile
String

어셈블리의 매니페스트를 포함하는 파일의 이름 또는 경로입니다.

securityEvidence
Evidence

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

hashValue
Byte[]

계산된 해시 코드의 값입니다.

hashAlgorithm
AssemblyHashAlgorithm

파일을 해시하고 강력한 이름을 생성하는 데 사용되는 해시 알고리즘입니다.

반품

로드된 어셈블리입니다.

특성

예외

assemblyFilenull입니다.

assemblyFile 을(를) 찾을 수 없거나 로드하려는 모듈에서 파일 이름 확장자를 지정하지 않습니다.

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

-또는-

securityEvidence 모호하지 않으며 잘못된 것으로 확인됩니다.

-또는-

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

assemblyFile 는 현재 로드된 런타임에 유효한 어셈블리가 아닙니다. 예를 들어 64비트 프로세스의 32비트 어셈블리입니다.

"file://"로 시작하지 않는 코드베이스가 필요 WebPermission없이 지정되었습니다.

assemblyFile 매개 변수는 빈 문자열("")입니다.

어셈블리 이름이 시스템 정의 최대 길이를 초과합니다.

설명

매개 변수는 이 assemblyFile 스케이프 문자가 없는 URI를 참조해야 합니다. 이 메서드는 URI의 모든 잘못된 문자에 대해 이스케이프 문자를 제공합니다.

메모

FTP(파일 전송 프로토콜)는 지원되지 않습니다. 제공된 assemblyFile URI가 FTP 주소이면 어셈블리가 로드되지 않습니다. 예외가 던져지지 않습니다.

assemblyFile 는 절대 또는 현재 디렉터리에 상대적일 수 있습니다.

어셈블리를 세 가지 컨텍스트 중 하나로 로드하거나 컨텍스트 없이 로드할 수 있습니다.

  • 부하 컨텍스트에는 검색에서 찾은 어셈블리가 포함됩니다. GAC, 런타임이 호스트되는 경우 호스트 어셈블리 저장소 또는 ApplicationBase 애플리케이션 도메인의 PrivateBinPath 어셈블리입니다. 대부분의 메서드 오버로드는 어셈블리를 Load 이 컨텍스트로 로드합니다.

  • 로드-원본 컨텍스트에는 사용자가 검색하여 검색한 디렉터리에 포함되지 않은 경로를 제공한 어셈블리가 포함됩니다. LoadFrom, CreateInstanceFrom경로 ExecuteAssembly 별로 로드하는 메서드의 예입니다.

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

  • 리플렉션 전용 컨텍스트에는 메서드와 ReflectionOnlyLoadFrom 함께 로드된 어셈블리가 ReflectionOnlyLoad 포함되어 있습니다. 이러한 컨텍스트의 코드는 실행할 수 없습니다.

  • 사용자가 어셈블리를 생성하거나 찾은 경우 컨텍스트가 아닙니다. 어셈블리를 포함하는 바이트 배열을 지정하는 메서드의 Load 오버로드를 사용하여 로드된 어셈블리와 리플렉션 내보내기를 사용하여 만들어지고 디스크에 저장되지 않은 임시 동적 어셈블리에 적용됩니다.

로드-원본 컨텍스트를 사용하면 검색에 포함되지 않은 경로에서 어셈블리를 로드할 수 있지만 경로 정보가 컨텍스트에서 유지 관리되기 때문에 해당 경로에 대한 종속성을 찾아서 로드할 수 있습니다.

메서드에는 LoadFrom 다음과 같은 단점이 있습니다. 대신 Load을 사용하는 것이 좋습니다.

  • ID가 동일한 어셈블리가 이미 로드된 LoadFrom 경우 다른 경로를 지정한 경우에도 로드된 어셈블리를 반환합니다.

  • 어셈블리가 로드되고 LoadFrom나중에 로드 컨텍스트의 어셈블리가 표시 이름으로 동일한 어셈블리를 로드하려고 하면 로드 시도가 실패합니다. 어셈블리가 역직렬화될 때 발생할 수 있습니다.

  • 어셈블리가 로드되고 LoadFrom검색 경로에 ID가 동일하지만 위치 InvalidCastException가 다른 어셈블리가 포함된 경우 , MissingMethodException또는 다른 예기치 않은 동작이 발생할 수 있습니다.

  • LoadFrom은/는 지정된 경로에서 FileIOPermissionAccess.ReadFileIOPermissionAccess.PathDiscovery를 요구하거나 WebPermission를 요구합니다.

  • 네이티브 이미지가 있는 assemblyFile경우 사용되지 않습니다. 어셈블리를 도메인 중립으로 로드할 수 없습니다.

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

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

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

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

  • 매개 변수가 있는 메서드를 LoadFromByte[] 사용하여 COFF(공용 개체 파일 형식) 이미지를 로드하는 경우 증명 정보가 결합됩니다. Zone Site 호출 Url 어셈블리에서 상속되고 COFF 어셈블리 StrongNameHash 에서 가져옵니다.

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

적용 대상

LoadFrom(String)

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

파일 이름 또는 경로가 지정된 어셈블리를 로드합니다.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")]
public static System.Reflection.Assembly LoadFrom(string assemblyFile);
public static System.Reflection.Assembly LoadFrom(string assemblyFile);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types and members the loaded assembly depends on might be removed")>]
static member LoadFrom : string -> System.Reflection.Assembly
static member LoadFrom : string -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String) As Assembly

매개 변수

assemblyFile
String

어셈블리의 매니페스트를 포함하는 파일의 이름 또는 경로입니다.

반품

로드된 어셈블리입니다.

특성

예외

assemblyFilenull입니다.

assemblyFile 을(를) 찾을 수 없거나 로드하려는 모듈에서 파일 이름 확장자를 지정하지 않습니다.

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

-또는-

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

assemblyFile 는 현재 로드된 런타임에 유효한 어셈블리가 아닙니다. 예를 들어 64비트 프로세스의 32비트 어셈블리입니다.

"file://"로 시작하지 않는 코드베이스가 필요 WebPermission없이 지정되었습니다.

assemblyFile 매개 변수는 빈 문자열("")입니다.

어셈블리 이름이 시스템 정의 최대 길이를 초과합니다.

예제

다음 예제에서는 파일 이름 또는 경로가 지정된 어셈블리를 로드합니다.

Assembly SampleAssembly;
SampleAssembly = Assembly.LoadFrom("c:\\Sample.Assembly.dll");
// Obtain a reference to a method known to exist in assembly.
MethodInfo Method = SampleAssembly.GetTypes()[0].GetMethod("Method1");
// Obtain a reference to the parameters collection of the MethodInfo instance.
ParameterInfo[] Params = Method.GetParameters();
// Display information about method parameters.
// Param = sParam1
//   Type = System.String
//   Position = 0
//   Optional=False
foreach (ParameterInfo Param in Params)
{
    Console.WriteLine("Param=" + Param.Name.ToString());
    Console.WriteLine("  Type=" + Param.ParameterType.ToString());
    Console.WriteLine("  Position=" + Param.Position.ToString());
    Console.WriteLine("  Optional=" + Param.IsOptional.ToString());
}
Dim SampleAssembly As [Assembly]
SampleAssembly = [Assembly].LoadFrom("c:\Sample.Assembly.dll")
' Obtain a reference to a method known to exist in assembly.
Dim Method As MethodInfo = SampleAssembly.GetTypes()(0).GetMethod("Method1")
' Obtain a reference to the parameters collection of the MethodInfo instance.
Dim Params As ParameterInfo() = Method.GetParameters()
' Display information about method parameters.
' Param = sParam1
'   Type = System.String
'   Position = 0
'   Optional=False
For Each Param As ParameterInfo In Params
    Console.WriteLine(("Param=" + Param.Name.ToString()))
    Console.WriteLine(("  Type=" + Param.ParameterType.ToString()))
    Console.WriteLine(("  Position=" + Param.Position.ToString()))
    Console.WriteLine(("  Optional=" + Param.IsOptional.ToString()))
Next

설명

이 API는 호환성을 위해 .NET Core에 있지만 대신 오버로드를 사용하는 AssemblyLoadContext 것이 좋습니다.

어셈블리가 기본 AssemblyLoadContext에 로드됩니다. 어셈블리 로드에 대한 자세한 내용은 관리되는 어셈블리 로드 알고리즘을 참조하세요.

매개 변수는 이 assemblyFile 스케이프 문자가 없는 URI를 참조해야 합니다. 이 메서드는 URI의 모든 잘못된 문자에 대해 이스케이프 문자를 제공합니다.

메모

.NET Framework만 해당: FTP(파일 전송 프로토콜)는 지원되지 않습니다. 제공된 assemblyFile URI가 FTP 주소이면 어셈블리가 로드되지 않습니다. 예외가 던져지지 않습니다.

assemblyFile 는 절대 또는 현재 디렉터리에 상대적일 수 있습니다.

.NET Framework만 해당: 어셈블리를 세 가지 컨텍스트 중 하나로 로드하거나 컨텍스트 없이 로드할 수 있습니다.

  • 부하 컨텍스트에는 검색에서 찾은 어셈블리가 포함됩니다. GAC, 런타임이 호스트되는 경우 호스트 어셈블리 저장소 또는 ApplicationBase 애플리케이션 도메인의 PrivateBinPath 어셈블리입니다. 대부분의 메서드 오버로드는 어셈블리를 Load 이 컨텍스트로 로드합니다.

  • 로드-원본 컨텍스트에는 사용자가 검색하여 검색한 디렉터리에 포함되지 않은 경로를 제공한 어셈블리가 포함됩니다. 또한 경로 정보가 컨텍스트에 의해 유지 관리되기 때문에 해당 경로에 대한 종속성을 찾아서 로드할 수 있습니다. LoadFrom, CreateInstanceFrom경로 ExecuteAssembly 별로 로드하는 메서드의 예입니다.

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

  • 리플렉션 전용 컨텍스트에는 메서드와 ReflectionOnlyLoadFrom 함께 로드된 어셈블리가 ReflectionOnlyLoad 포함되어 있습니다. 이러한 컨텍스트의 코드는 실행할 수 없습니다.

  • 사용자가 어셈블리를 생성하거나 찾은 경우 컨텍스트가 아닙니다. 어셈블리를 포함하는 바이트 배열을 지정하는 메서드의 Load 오버로드를 사용하여 로드된 어셈블리와 리플렉션 내보내기를 사용하여 만들어지고 디스크에 저장되지 않은 임시 동적 어셈블리에 적용됩니다.

메서드에는 LoadFrom 다음과 같은 단점이 있습니다. 대신 Load을 사용하는 것이 좋습니다.

  • 동일한 ID를 가진 어셈블리가 이미 load-from 컨텍스트 LoadFrom에 로드된 경우, 다른 경로가 지정되어도 이미 로드된 어셈블리를 반환합니다.

  • 동일한 ID를 가진 어셈블리가 로드 컨텍스트에 있더라도 어셈블리를 로드할 수 있습니다. 두 어셈블리 간의 상호 운용성이 작동하지 않아 , 또는 다른 예기치 않은 동작과 같은 InvalidCastExceptionMissingMethodException오류가 발생합니다.

  • 검색 경로에 있는 위치로 호출 LoadFrom 하면 로드 컨텍스트가 아닌 로드 컨텍스트에서 어셈블리가 로드됩니다.

  • 바인딩 리디렉션 정책에 의해 ID가 고브렌된 어셈블리 파일이 전달 LoadFrom되면 정책이 적용되고 로드 컨텍스트의 검색 경로에서 어셈블리가 로드됩니다.

  • 어셈블리가 로드된 컨텍스트에서 로드되고 나중에 로드 컨텍스트의 어셈블리가 표시 이름으로 동일한 어셈블리를 로드하려고 하면 로드 시도가 실패합니다. 어셈블리가 역직렬화될 때 발생할 수 있습니다.

  • LoadFrom은/는 지정된 경로에서 FileIOPermissionAccess.ReadFileIOPermissionAccess.PathDiscovery를 요구하거나 WebPermission를 요구합니다.

  • 네이티브 이미지가 있는 assemblyFile경우 사용되지 않습니다. 어셈블리를 도메인 중립으로 로드할 수 없습니다.

적용 대상

LoadFrom(String, Evidence)

주의

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

파일 이름 또는 경로를 지정하고 보안 증명 정보를 제공하는 어셈블리를 로드합니다.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, System::Security::Policy::Evidence ^ securityEvidence);
public static System.Reflection.Assembly LoadFrom(string assemblyFile, 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 LoadFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly LoadFrom(string assemblyFile, System.Security.Policy.Evidence securityEvidence);
static member LoadFrom : 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 LoadFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member LoadFrom : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String, securityEvidence As Evidence) As Assembly

매개 변수

assemblyFile
String

어셈블리의 매니페스트를 포함하는 파일의 이름 또는 경로입니다.

securityEvidence
Evidence

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

반품

로드된 어셈블리입니다.

특성

예외

assemblyFilenull입니다.

assemblyFile 을(를) 찾을 수 없거나 로드하려는 모듈에서 파일 이름 확장자를 지정하지 않습니다.

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

-또는-

securityEvidence 모호하지 않으며 잘못된 것으로 확인됩니다.

-또는-

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

assemblyFile 는 현재 로드된 런타임에 유효한 어셈블리가 아닙니다. 예를 들어 64비트 프로세스의 32비트 어셈블리입니다.

"file://"로 시작하지 않는 코드베이스가 필요 WebPermission없이 지정되었습니다.

assemblyFile 매개 변수는 빈 문자열("")입니다.

어셈블리 이름이 시스템 정의 최대 길이를 초과합니다.

설명

매개 변수는 이 assemblyFile 스케이프 문자가 없는 URI를 참조해야 합니다. 이 메서드는 URI의 모든 잘못된 문자에 대해 이스케이프 문자를 제공합니다.

메모

FTP(파일 전송 프로토콜)는 지원되지 않습니다. 제공된 assemblyFile URI가 FTP 주소이면 어셈블리가 로드되지 않습니다. 예외가 던져지지 않습니다.

assemblyFile 는 절대 또는 현재 디렉터리에 상대적일 수 있습니다.

어셈블리를 세 가지 컨텍스트 중 하나로 로드하거나 컨텍스트 없이 로드할 수 있습니다.

  • 부하 컨텍스트에는 검색에서 찾은 어셈블리가 포함됩니다. GAC, 런타임이 호스트되는 경우 호스트 어셈블리 저장소 또는 ApplicationBase 애플리케이션 도메인의 PrivateBinPath 어셈블리입니다. 대부분의 메서드 오버로드는 어셈블리를 Load 이 컨텍스트로 로드합니다.

  • 로드-원본 컨텍스트에는 사용자가 검색하여 검색한 디렉터리에 포함되지 않은 경로를 제공한 어셈블리가 포함됩니다. LoadFrom, CreateInstanceFrom경로 ExecuteAssembly 별로 로드하는 메서드의 예입니다.

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

  • 리플렉션 전용 컨텍스트에는 메서드와 ReflectionOnlyLoadFrom 함께 로드된 어셈블리가 ReflectionOnlyLoad 포함되어 있습니다. 이러한 컨텍스트의 코드는 실행할 수 없습니다.

  • 사용자가 어셈블리를 생성하거나 찾은 경우 컨텍스트가 아닙니다. 어셈블리를 포함하는 바이트 배열을 지정하는 메서드의 Load 오버로드를 사용하여 로드된 어셈블리와 리플렉션 내보내기를 사용하여 만들어지고 디스크에 저장되지 않은 임시 동적 어셈블리에 적용됩니다.

로드-원본 컨텍스트를 사용하면 검색에 포함되지 않은 경로에서 어셈블리를 로드할 수 있지만 경로 정보가 컨텍스트에서 유지 관리되기 때문에 해당 경로에 대한 종속성을 찾아서 로드할 수 있습니다.

메서드에는 LoadFrom 다음과 같은 단점이 있습니다. 대신 Load을 사용하는 것이 좋습니다.

  • ID가 동일한 어셈블리가 이미 로드된 LoadFrom 경우 다른 경로를 지정한 경우에도 로드된 어셈블리를 반환합니다.

  • 어셈블리가 로드되고 LoadFrom나중에 로드 컨텍스트의 어셈블리가 표시 이름으로 동일한 어셈블리를 로드하려고 하면 로드 시도가 실패합니다. 어셈블리가 역직렬화될 때 발생할 수 있습니다.

  • 어셈블리가 로드되고 LoadFrom검색 경로에 ID가 동일하지만 위치 InvalidCastException가 다른 어셈블리가 포함된 경우 , MissingMethodException또는 다른 예기치 않은 동작이 발생할 수 있습니다.

  • LoadFrom은/는 지정된 경로에서 FileIOPermissionAccess.ReadFileIOPermissionAccess.PathDiscovery를 요구하거나 WebPermission를 요구합니다.

  • 네이티브 이미지가 있는 assemblyFile경우 사용되지 않습니다. 어셈블리를 도메인 중립으로 로드할 수 없습니다.

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

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

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

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

  • 매개 변수가 있는 메서드를 LoadFromByte[] 사용하여 COFF(공용 개체 파일 형식) 이미지를 로드하는 경우 증명 정보가 결합됩니다. Zone Site 호출 Url 어셈블리에서 상속되고 COFF 어셈블리 StrongNameHash 에서 가져옵니다.

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

추가 정보

적용 대상