Assembly.LoadFrom 메서드

정의

어셈블리를 로드합니다.

오버로드

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

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

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

해당 파일 이름이나 경로가 지정된 어셈블리, 해시 값 및 해시 알고리즘을 로드합니다.

LoadFrom(String)

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

LoadFrom(String, Evidence)
사용되지 않습니다.
사용되지 않습니다.

해당 파일 이름이나 경로가 지정된 어셈블리를 로드하고 보안 증명을 제공합니다.

설명

.NET Framework 4부터 원격 위치에서 로드된 어셈블리에서 코드를 실행하는 기능은 기본적으로 사용하지 않도록 설정되며 메서드에 대한 LoadFrom 호출은 FileLoadException을 throw합니다. 어셈블리를 로드하고 해당 코드를 실행하려면 다음 중 하나를 수행해야 합니다.

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.

주의

이 API는 이제 사용되지 않습니다.

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

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);
[System.Obsolete]
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
[<System.Obsolete>]
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

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

반환

Assembly

로드된 어셈블리입니다.

특성

예외

assemblyFile이(가) null인 경우

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

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

또는

securityEvidence가 모호하며 올바르지 않은 것으로 확인되었습니다.

또는

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

assemblyFile이 유효한 어셈블리가 아닙니다. 예를 들어, 64비트 프로세스의 32비트 어셈블리입니다. 자세한 정보는 예외 항목을 참조하세요.

또는

버전 2.0 이상의 공용 언어 런타임이 현재 로드되어 있으며 assemblyFile가 이후 버전으로 컴파일되었습니다.

"file://"로 시작하지 않는 Codebase가 필수 WebPermission 없이 지정되었습니다.

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

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

설명

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

참고

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

assemblyFile 는 절대 또는 현재 디렉터리에 상대적일 수 있으며 어셈블리는 호출자의 도메인에 로드됩니다.

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

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

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

    .NET Framework 4부터 원격 위치를 지정하는 URI assemblyFile 가 기본적으로 어셈블리 로드를 사용하지 않도록 설정되고 메서드가 LoadFrom throwFileLoadException됩니다. 원격 위치에서 로드된 코드 실행을 사용하도록 설정하려면 구성 요소를 사용할 <loadFromRemoteSources> 수 있습니다.

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

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

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

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

  • 같은 ID를 가진 어셈블리가 이미 로드되어 있으면 다른 경로가 지정된 경우에도 LoadFrom은 로드된 어셈블리를 반환합니다.

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

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

  • LoadFrom은 지정된 경로에서 FileIOPermissionAccess.ReadFileIOPermissionAccess.PathDiscovery 또는 WebPermission을 요구합니다.

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

  • .NET Framework 버전 1.0 및 1.1에서는 정책이 적용되지 않습니다.

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

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

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

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

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

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

적용 대상

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

해당 파일 이름이나 경로가 지정된 어셈블리, 해시 값 및 해시 알고리즘을 로드합니다.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, cli::array <System::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);
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

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

반환

Assembly

로드된 어셈블리입니다.

예외

assemblyFile이(가) null인 경우

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

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

또는

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

assemblyFile이 유효한 어셈블리가 아닙니다. 예를 들어, 64비트 프로세스의 32비트 어셈블리입니다. 자세한 정보는 예외 항목을 참조하세요.

또는

assemblyFile가 현재 로드된 버전보다 이후 버전의 공용 언어 런타임으로 컴파일되었습니다.

"file://"로 시작하지 않는 Codebase가 필수 WebPermission 없이 지정되었습니다.

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

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

설명

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

참고

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

assemblyFile 는 절대 또는 현재 디렉터리에 상대적일 수 있으며 어셈블리는 호출자의 도메인에 로드됩니다.

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

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

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

    .NET Framework 4부터 원격 위치를 지정하는 URI assemblyFile 가 기본적으로 어셈블리 로드를 사용하지 않도록 설정되고 메서드가 LoadFrom throwFileLoadException됩니다. 원격 위치에서 로드된 코드 실행을 사용하도록 설정하려면 구성 요소를 사용할 <loadFromRemoteSources> 수 있습니다.

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

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

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

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

  • 같은 ID를 가진 어셈블리가 이미 로드되어 있으면 다른 경로가 지정된 경우에도 LoadFrom은 로드된 어셈블리를 반환합니다.

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

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

  • LoadFrom은 지정된 경로에서 FileIOPermissionAccess.ReadFileIOPermissionAccess.PathDiscovery 또는 WebPermission을 요구합니다.

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

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

적용 대상

LoadFrom(String)

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

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

매개 변수

assemblyFile
String

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

반환

Assembly

로드된 어셈블리입니다.

예외

assemblyFile이(가) null인 경우

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

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

또는

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

assemblyFile이 유효한 어셈블리가 아닙니다. 예를 들어, 64비트 프로세스의 32비트 어셈블리입니다. 자세한 정보는 예외 항목을 참조하세요.

또는

버전 2.0 이상의 공용 언어 런타임이 현재 로드되어 있으며 assemblyFile가 이후 버전으로 컴파일되었습니다.

"file://"로 시작하지 않는 Codebase가 필수 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.
array<ParameterInfo^>^ Params = Method->GetParameters();
// Display information about method parameters.
// Param = sParam1
//   Type = System::String
//   Position = 0
//   Optional=False
for each ( ParameterInfo^ Param in Params )
{
   Console::WriteLine( "Param= {0}", Param->Name );
   Console::WriteLine( "  Type= {0}", Param->ParameterType );
   Console::WriteLine( "  Position= {0}", Param->Position );
   Console::WriteLine( "  Optional= {0}", Param->IsOptional );
}
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

설명

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

참고

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

assemblyFile 는 절대 또는 현재 디렉터리에 상대적일 수 있으며 어셈블리는 호출자의 도메인에 로드됩니다.

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

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

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

    .NET Framework 4부터 원격 위치를 지정하는 URI assemblyFile 가 기본적으로 어셈블리 로드를 사용하지 않도록 설정되고 메서드가 LoadFrom throwFileLoadException됩니다. 원격 위치에서 로드된 코드 실행을 사용하도록 설정하려면 구성 요소를 사용할 <loadFromRemoteSources> 수 있습니다.

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

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

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

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

  • 같은 ID를 가진 어셈블리가 이미 로드 소스 컨텍스트에서 로드되어 있으면 다른 경로가 지정된 경우에도 LoadFrom은 로드된 어셈블리를 반환합니다.

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

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

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

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

  • LoadFrom은 지정된 경로에서 FileIOPermissionAccess.ReadFileIOPermissionAccess.PathDiscovery 또는 WebPermission을 요구합니다.

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

  • .NET Framework 버전 1.0 및 1.1에서는 정책이 적용되지 않습니다.

적용 대상

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.

주의

이 API는 이제 사용되지 않습니다.

해당 파일 이름이나 경로가 지정된 어셈블리를 로드하고 보안 증명을 제공합니다.

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);
[System.Obsolete]
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
[<System.Obsolete>]
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

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

반환

Assembly

로드된 어셈블리입니다.

특성

예외

assemblyFile이(가) null인 경우

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

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

또는

securityEvidence가 모호하며 올바르지 않은 것으로 확인되었습니다.

또는

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

assemblyFile이 유효한 어셈블리가 아닙니다. 예를 들어, 64비트 프로세스의 32비트 어셈블리입니다. 자세한 정보는 예외 항목을 참조하세요.

또는

버전 2.0 이상의 공용 언어 런타임이 현재 로드되어 있으며 assemblyFile가 이후 버전으로 컴파일되었습니다.

"file://"로 시작하지 않는 Codebase가 필수 WebPermission 없이 지정되었습니다.

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

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

설명

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

참고

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

assemblyFile 는 절대 또는 현재 디렉터리에 상대적일 수 있으며 어셈블리는 호출자의 도메인에 로드됩니다.

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

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

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

    .NET Framework 4부터 원격 위치를 지정하는 URI assemblyFile 가 기본적으로 어셈블리 로드를 사용하지 않도록 설정되고 메서드가 LoadFrom throwFileLoadException됩니다. 원격 위치에서 로드된 코드 실행을 사용하도록 설정하려면 구성 요소를 사용할 <loadFromRemoteSources> 수 있습니다.

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

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

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

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

  • 같은 ID를 가진 어셈블리가 이미 로드되어 있으면 다른 경로가 지정된 경우에도 LoadFrom은 로드된 어셈블리를 반환합니다.

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

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

  • LoadFrom은 지정된 경로에서 FileIOPermissionAccess.ReadFileIOPermissionAccess.PathDiscovery 또는 WebPermission을 요구합니다.

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

  • .NET Framework 버전 1.0 및 1.1에서는 정책이 적용되지 않습니다.

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

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

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

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

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

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

추가 정보

적용 대상