Assembly.LoadFrom Assembly.LoadFrom Assembly.LoadFrom Assembly.LoadFrom Method

Definição

Carrega um assembly.Loads an assembly.

Sobrecargas

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

Carrega um assembly considerando seu nome de arquivo ou caminho, sua evidência de segurança, seu valor de hash e seu algoritmo de hash.Loads an assembly given its file name or path, security evidence, hash value, and hash algorithm.

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

Carrega um assembly de acordo com o nome de arquivo ou caminho, valor e algoritmo de hash.Loads an assembly given its file name or path, hash value, and hash algorithm.

LoadFrom(String) LoadFrom(String) LoadFrom(String) LoadFrom(String)

Carrega um assembly de acordo com o nome de arquivo ou caminho.Loads an assembly given its file name or path.

LoadFrom(String, Evidence) LoadFrom(String, Evidence) LoadFrom(String, Evidence) LoadFrom(String, Evidence)

Carrega um assembly dado seu nome de arquivo ou caminho e fornecendo evidência de segurança.Loads an assembly given its file name or path and supplying security evidence.

Comentários

A partir do .NET Framework 4, a capacidade de executar código em assemblies carregados de locais remotos é desabilitada por padrão e a chamada LoadFrom para o método FileLoadExceptiongera um.Starting with .NET Framework 4, the ability to execute code in assemblies loaded from remote locations is disabled by default, and the call to the LoadFrom method throws a FileLoadException. Para carregar o assembly e executar seu código, você deve:To load the assembly and execute its code, you must either:

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

Aviso

Esta API agora é obsoleta.

Carrega um assembly considerando seu nome de arquivo ou caminho, sua evidência de segurança, seu valor de hash e seu algoritmo de hash.Loads an assembly given its file name or path, security evidence, hash value, and hash algorithm.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, System::Security::Policy::Evidence ^ securityEvidence, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
[System.Obsolete]
[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
Public Shared Function LoadFrom (assemblyFile As String, securityEvidence As Evidence, hashValue As Byte(), hashAlgorithm As AssemblyHashAlgorithm) As Assembly

Parâmetros

assemblyFile
String String String String

O nome ou o caminho do arquivo que contém o manifesto do assembly.The name or path of the file that contains the manifest of the assembly.

securityEvidence
Evidence Evidence Evidence Evidence

Evidência para carregar o assembly.Evidence for loading the assembly.

hashValue
Byte[]

O valor do código hash calculado.The value of the computed hash code.

hashAlgorithm
AssemblyHashAlgorithm AssemblyHashAlgorithm AssemblyHashAlgorithm AssemblyHashAlgorithm

O algoritmo de hash usado para arquivos de hash e para gerar o nome forte.The hash algorithm used for hashing files and for generating the strong name.

Retornos

O assembly carregado.The loaded assembly.

Exceções

assemblyFile não foi encontrado, ou o módulo que você está tentando carregar não especifica uma extensão de nome de arquivo.assemblyFile is not found, or the module you are trying to load does not specify a filename extension.

Não foi possível carregar um arquivo que foi encontrado.A file that was found could not be loaded.

- ou --or- O securityEvidence não é ambíguo e é determinado como inválido.The securityEvidence is not ambiguous and is determined to be invalid.

- ou --or-

A capacidade de executar código em assemblies remotos está desabilitada.The ability to execute code in remote assemblies is disabled. Veja <loadFromRemoteSources>.See <loadFromRemoteSources>.

assemblyFile não é um assembly válido; por exemplo, um assembly de 32 bits em um processo de 64 bits.assemblyFile is not a valid assembly; for example, a 32-bit assembly in a 64-bit process. Consulte o tópico de exceção para obter mais informações.See the exception topic for more information.

- ou --or- A versão 2,0 ou posterior do Common Language Runtime está carregada e assemblyFile foi compilada com uma versão posterior.Version 2.0 or later of the common language runtime is currently loaded and assemblyFile was compiled with a later version.

Uma base de código que não é iniciada com “file://” foi especificada sem o WebPermission necessário.A codebase that does not start with "file://" was specified without the required WebPermission.

O parâmetro assemblyFile é uma cadeia de caracteres vazia ("").The assemblyFile parameter is an empty string ("").

O nome do assembly excede o tamanho máximo definido pelo sistema.The assembly name exceeds the system-defined maximum length.

Comentários

O assemblyFile parâmetro deve se referir a um URI sem caracteres de escape.The assemblyFile parameter must refer to a URI without escape characters. Esse método fornece caracteres de escape para todos os caracteres inválidos no URI.This method supplies escape characters for all invalid characters in the URI.

Observação

Não há suporte para o FTP (File Transfer Protocol).File transfer protocol (FTP) is not supported. Se o URI fornecido para assemblyFile for um endereço FTP, o assembly não será carregado.If the URI supplied for assemblyFile is an FTP address, the assembly is not loaded. Nenhuma exceção é lançada.No exception is thrown.

assemblyFilepode ser absoluto ou relativo ao diretório atual, e o assembly é carregado no domínio do chamador.assemblyFile may be absolute or relative to the current directory, and the assembly is loaded into the domain of the caller.

Os assemblies podem ser carregados em um de três contextos ou podem ser carregados sem contexto:Assemblies can be loaded into one of three contexts, or can be loaded without context:

  • O contexto de carga contém assemblies encontrados pela sondagem: no GAC, em um armazenamento de assembly de host se o tempo de execução estiver hospedado ApplicationBase ou PrivateBinPath no e no domínio do aplicativo.The load context contains assemblies found by probing: in the GAC, in a host assembly store if the runtime is hosted, or in the ApplicationBase and PrivateBinPath of the application domain. A maioria das sobrecargas do método Load carrega os assemblies nesse contexto.Most overloads of the Load method load assemblies into this context.

  • O contexto de carga do contém assemblies para os quais o usuário forneceu um caminho não incluído nos diretórios pesquisados por investigação.The load-from context contains assemblies for which the user provided a path not included in the directories searched by probing. LoadFrom, CreateInstanceFrom e ExecuteAssembly são exemplos de métodos que carregam pelo caminho.LoadFrom, CreateInstanceFrom, and ExecuteAssembly are examples of methods that load by path.

    A partir do .NET Framework 4, se o URI assemblyFile de especificar um local remoto, o carregamento do assembly será desabilitado por LoadFrom padrão e o FileLoadExceptionmétodo lançará um.Starting with .NET Framework 4, if the URI of assemblyFile specifies a remote location, assembly loading is disabled by default, and the LoadFrom method throws a FileLoadException. Para habilitar a execução de código carregado a partir de locais remotos, <loadFromRemoteSources> você pode usar o elemento de configuração.To enable execution of code loaded from remote locations, you can use the <loadFromRemoteSources> configuration element.

  • O contexto somente de reflexão contém assemblies carregados com os ReflectionOnlyLoad métodos ReflectionOnlyLoadFrom e; o código nesses contextos não pode ser executado.The reflection-only context contains assemblies loaded with the ReflectionOnlyLoad and ReflectionOnlyLoadFrom methods; code in these contexts cannot be executed.

  • Se o usuário tiver gerado ou encontrado o assembly, ele não estará em nenhum contexto.If the user generated or found the assembly, it is not in any context. Isso se aplica a assemblies carregados usando sobrecargas do Load método que especificam uma matriz de bytes que contém um assembly e a assemblies dinâmicos transitórios criados com emissão de reflexo e não salvos em disco.This applies to assemblies loaded using overloads of the Load method that specify a byte array containing an assembly, and to transient dynamic assemblies created with reflection emit and not saved to disk.

O contexto de carga do permite que um assembly seja carregado de um caminho não incluído no teste e, ainda assim, permite que as dependências desse caminho sejam encontradas e carregadas porque as informações de caminho são mantidas pelo contexto.The load-from context allows an assembly to be loaded from a path not included in probing, and yet allows dependencies on that path to be found and loaded because the path information is maintained by the context.

O LoadFrom método tem as seguintes desvantagens.The LoadFrom method has the following disadvantages. Considere o uso de Load em seu lugar.Consider using Load instead.

  • Se um assembly com a mesma identidade já estiver carregado, LoadFrom retornará o assembly carregado, mesmo se um caminho diferente foi especificado.If an assembly with the same identity is already loaded, LoadFrom returns the loaded assembly even if a different path was specified.

  • Se um assembly for carregado com LoadFromo e posteriormente um assembly no contexto de carga tentar carregar o mesmo assembly pelo nome de exibição, a tentativa de carregamento falhará.If an assembly is loaded with LoadFrom, and later an assembly in the load context attempts to load the same assembly by display name, the load attempt fails. Isso pode ocorrer quando um assembly é desserializado.This can occur when an assembly is deserialized.

  • Se um assembly for carregado com LoadFromo, e o caminho de investigação incluir um assembly com a mesma identidade, mas um local diferente InvalidCastException, MissingMethodExceptionum, ou outro comportamento inesperado poderá ocorrer.If an assembly is loaded with LoadFrom, and the probing path includes an assembly with the same identity but a different location, an InvalidCastException, MissingMethodException, or other unexpected behavior can occur.

  • LoadFrom exige FileIOPermissionAccess.Read e FileIOPermissionAccess.PathDiscovery, ou WebPermission, no caminho especificado.LoadFrom demands FileIOPermissionAccess.Read and FileIOPermissionAccess.PathDiscovery, or WebPermission, on the specified path.

  • Se uma imagem nativa existir para assemblyFile, ela não será usada.If a native image exists for assemblyFile, it is not used. O assembly não pode ser carregado como domínio neutro.The assembly cannot be loaded as domain neutral.

  • No .NET Framework versão 1,0 e 1,1, a política não é aplicada.In the .NET Framework version 1.0 and 1.1, policy is not applied.

Se determinadas permissões são concedidas ou não a um assembly é algo que se baseia na evidência.Whether certain permissions are granted or not granted to an assembly is based on evidence. As regras para mesclagem de evidência de segurança e assembly são as seguintes:The rules for assembly and security evidence merging are as follows:

  • Quando você usa um LoadFrom método Evidence sem parâmetro, o assembly é carregado com a evidência que o carregador fornece.When you use a LoadFrom method with no Evidence parameter, the assembly is loaded with the evidence that the loader supplies.

  • Quando você usa um LoadFrom método com um Evidence parâmetro, as partes das evidências são mescladas.When you use a LoadFrom method with an Evidence parameter, pieces of evidence are merged. Partes de evidência fornecidas como um argumento para o LoadFrom método substituem as partes das evidências fornecidas pelo carregador.Pieces of evidence supplied as an argument to the LoadFrom method supersede pieces of evidence supplied by the loader.

  • Se você chamar esse método mais de uma vez no mesmo assembly, mas com uma evidência diferente especificada, o Common Language Runtime não lança um FileLoadException porque a igualdade e a integridade das diferentes especificações de evidência não podem ser determinadas.If you call this method more than once on the same assembly but with a different evidence specified, the common language runtime does not throw a FileLoadException because the equality and integrity of the different evidence specifications cannot be determined. A evidência que é realizada pela primeira vez é a evidência que é usada.The evidence that first succeeds is the evidence that is used.

  • Quando você usa um LoadFrom método com um Byte[] parâmetro para carregar uma imagem de formato de arquivo de objeto comum (COFF), a evidência é combinada.When you use a LoadFrom method with a Byte[] parameter to load a common object file format (COFF) image, evidence is combined. Zonee são herdados do assembly de chamada e Hash e StrongName são extraídos do assembly COFF. Site UrlZone, Url and Site are inherited from the calling assembly, and Hash and StrongName are taken from the COFF assembly.

  • Quando você usa um LoadFrom método com um Byte[] parâmetro e Evidence para carregar uma imagem COFF, somente a evidência fornecida é usada.When you use a LoadFrom method with a Byte[] parameter and Evidence to load a COFF image, only the supplied evidence is used. A evidência do assembly de chamada e a evidência da imagem COFF é ignorada.Evidence of the calling assembly and evidence of the COFF image is ignored.

Segurança

SecurityPermission
para carregar um assembly com evidências.to load an assembly with evidence. Enumeração associada: ControlEvidenceAssociated enumeration: ControlEvidence

FileIOPermission
para ler um URI que começa com "file://".for reading a URI that begins with "file://". Enumeração associada: ReadAssociated enumeration: Read

WebPermission
para ler um URI que não começa com "file://".for reading a URI that does not begin with "file://".

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

Carrega um assembly de acordo com o nome de arquivo ou caminho, valor e algoritmo de hash.Loads an assembly given its file name or path, hash value, and hash algorithm.

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

Parâmetros

assemblyFile
String String String String

O nome ou o caminho do arquivo que contém o manifesto do assembly.The name or path of the file that contains the manifest of the assembly.

hashValue
Byte[]

O valor do código hash calculado.The value of the computed hash code.

hashAlgorithm
AssemblyHashAlgorithm AssemblyHashAlgorithm AssemblyHashAlgorithm AssemblyHashAlgorithm

O algoritmo de hash usado para arquivos de hash e para gerar o nome forte.The hash algorithm used for hashing files and for generating the strong name.

Retornos

O assembly carregado.The loaded assembly.

Exceções

assemblyFile não foi encontrado ou o módulo que você está tentando carregar não especifica uma extensão de nome de arquivo.assemblyFile is not found, or the module you are trying to load does not specify a file name extension.

Não foi possível carregar um arquivo que foi encontrado.A file that was found could not be loaded.

- ou --or-

A capacidade de executar código em assemblies remotos está desabilitada.The ability to execute code in remote assemblies is disabled. Veja <loadFromRemoteSources>.See <loadFromRemoteSources>.

assemblyFile não é um assembly válido; por exemplo, um assembly de 32 bits em um processo de 64 bits.assemblyFile is not a valid assembly; for example, a 32-bit assembly in a 64-bit process. Consulte o tópico de exceção para obter mais informações.See the exception topic for more information.

- ou --or- assemblyFile foi compilado com uma versão posterior do Common Language Runtime do que a versão carregada atualmente.assemblyFile was compiled with a later version of the common language runtime than the version that is currently loaded.

Uma base de código que não é iniciada com “file://” foi especificada sem o WebPermission necessário.A codebase that does not start with "file://" was specified without the required WebPermission.

O parâmetro assemblyFile é uma cadeia de caracteres vazia ("").The assemblyFile parameter is an empty string ("").

O nome do assembly excede o tamanho máximo definido pelo sistema.The assembly name exceeds the system-defined maximum length.

Comentários

O assemblyFile parâmetro deve se referir a um URI sem caracteres de escape.The assemblyFile parameter must refer to a URI without escape characters. Esse método fornece caracteres de escape para todos os caracteres inválidos no URI.This method supplies escape characters for all invalid characters in the URI.

Observação

Não há suporte para o FTP (File Transfer Protocol).File transfer protocol (FTP) is not supported. Se o URI fornecido para assemblyFile for um endereço FTP, o assembly não será carregado.If the URI supplied for assemblyFile is an FTP address, the assembly is not loaded. Nenhuma exceção é lançada.No exception is thrown.

assemblyFilepode ser absoluto ou relativo ao diretório atual, e o assembly é carregado no domínio do chamador.assemblyFile may be absolute or relative to the current directory, and the assembly is loaded into the domain of the caller.

Os assemblies podem ser carregados em um de três contextos ou podem ser carregados sem contexto:Assemblies can be loaded into one of three contexts, or can be loaded without context:

  • O contexto de carga contém assemblies encontrados pela sondagem: no cache de assembly global, em um armazenamento de assembly de host se o tempo de execução estiver ApplicationBase hospedado PrivateBinPath ou no e no domínio do aplicativo.The load context contains assemblies found by probing: in the global assembly cache, in a host assembly store if the runtime is hosted, or in the ApplicationBase and PrivateBinPath of the application domain. A maioria das sobrecargas do método Load carrega os assemblies nesse contexto.Most overloads of the Load method load assemblies into this context.

  • O contexto de carga do contém assemblies para os quais o usuário forneceu um caminho que não está incluído na investigação.The load-from context contains assemblies for which the user provided a path that is not included in probing. LoadFrom, CreateInstanceFrom e ExecuteAssembly são exemplos de métodos que carregam pelo caminho.LoadFrom, CreateInstanceFrom, and ExecuteAssembly are examples of methods that load by path.

    A partir do .NET Framework 4, se o URI assemblyFile de especificar um local remoto, o carregamento do assembly será desabilitado por LoadFrom padrão e o FileLoadExceptionmétodo lançará um.Starting with .NET Framework 4, if the URI of assemblyFile specifies a remote location, assembly loading is disabled by default, and the LoadFrom method throws a FileLoadException. Para habilitar a execução de código carregado a partir de locais remotos, <loadFromRemoteSources> você pode usar o elemento de configuração.To enable execution of code loaded from remote locations, you can use the <loadFromRemoteSources> configuration element.

  • O contexto somente de reflexão contém assemblies carregados com os ReflectionOnlyLoad métodos ReflectionOnlyLoadFrom e; o código nesses contextos não pode ser executado.The reflection-only context contains assemblies loaded with the ReflectionOnlyLoad and ReflectionOnlyLoadFrom methods; code in these contexts cannot be executed.

  • Se o usuário tiver gerado ou encontrado o assembly, ele não estará em nenhum contexto.If the user generated or found the assembly, it is not in any context. Isso se aplica a assemblies carregados usando sobrecargas do Load método que especificam uma matriz de bytes que contém um assembly e a assemblies dinâmicos transitórios criados com emissão de reflexo e não salvos em disco.This applies to assemblies loaded using overloads of the Load method that specify a byte array containing an assembly, and to transient dynamic assemblies created with reflection emit and not saved to disk.

O contexto de carga do permite que um assembly seja carregado de um caminho que não está incluído no teste e, ainda assim, permite que as dependências desse caminho sejam encontradas e carregadas porque as informações de caminho são mantidas pelo contexto.The load-from context allows an assembly to be loaded from a path that is not included in probing, and yet allows dependencies on that path to be found and loaded because the path information is maintained by the context.

O LoadFrom método tem as seguintes desvantagens.The LoadFrom method has the following disadvantages. Considere o uso de Load em seu lugar.Consider using Load instead.

  • Se um assembly com a mesma identidade já estiver carregado, LoadFrom retornará o assembly carregado, mesmo se um caminho diferente foi especificado.If an assembly with the same identity is already loaded, LoadFrom returns the loaded assembly even if a different path was specified.

  • Se um assembly for carregado com LoadFromo e posteriormente um assembly no contexto de carga tentar carregar o mesmo assembly pelo nome de exibição, a tentativa de carregamento falhará.If an assembly is loaded with LoadFrom, and later an assembly in the load context attempts to load the same assembly by display name, the load attempt fails. Isso pode ocorrer quando um assembly é desserializado.This can occur when an assembly is deserialized.

  • Se um assembly for carregado com LoadFromo, e o caminho de investigação incluir um assembly com a mesma identidade, mas um local diferente InvalidCastException, MissingMethodExceptionum, ou outro comportamento inesperado poderá ocorrer.If an assembly is loaded with LoadFrom, and the probing path includes an assembly with the same identity but a different location, an InvalidCastException, MissingMethodException, or other unexpected behavior can occur.

  • LoadFrom exige FileIOPermissionAccess.Read e FileIOPermissionAccess.PathDiscovery, ou WebPermission, no caminho especificado.LoadFrom demands FileIOPermissionAccess.Read and FileIOPermissionAccess.PathDiscovery, or WebPermission, on the specified path.

  • Se uma imagem nativa existir para assemblyFile, ela não será usada.If a native image exists for assemblyFile, it is not used. O assembly não pode ser carregado como de domínio neutro.The assembly cannot be loaded as domain-neutral.

O assembly é carregado com a evidência que o carregador fornece.The assembly is loaded with the evidence that the loader supplies.

Segurança

SecurityPermission
para carregar um assembly com evidências.to load an assembly with evidence. Enumeração associada: ControlEvidenceAssociated enumeration: ControlEvidence

FileIOPermission
para ler um URI que começa com "file://".for reading a URI that begins with "file://". Enumeração associada: ReadAssociated enumeration: Read

WebPermission
para ler um URI que não começa com "file://".for reading a URI that does not begin with "file://".

LoadFrom(String) LoadFrom(String) LoadFrom(String) LoadFrom(String)

Carrega um assembly de acordo com o nome de arquivo ou caminho.Loads an assembly given its file name or path.

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

Parâmetros

assemblyFile
String String String String

O nome ou o caminho do arquivo que contém o manifesto do assembly.The name or path of the file that contains the manifest of the assembly.

Retornos

O assembly carregado.The loaded assembly.

Exceções

assemblyFile não foi encontrado, ou o módulo que você está tentando carregar não especifica uma extensão de nome de arquivo.assemblyFile is not found, or the module you are trying to load does not specify a filename extension.

Não foi possível carregar um arquivo que foi encontrado.A file that was found could not be loaded.

- ou --or-

A capacidade de executar código em assemblies remotos está desabilitada.The ability to execute code in remote assemblies is disabled. Veja <loadFromRemoteSources>.See <loadFromRemoteSources>.

assemblyFile não é um assembly válido; por exemplo, um assembly de 32 bits em um processo de 64 bits.assemblyFile is not a valid assembly; for example, a 32-bit assembly in a 64-bit process. Consulte o tópico de exceção para obter mais informações.See the exception topic for more information.

- ou --or- A versão 2,0 ou posterior do Common Language Runtime está carregada e assemblyFile foi compilada com uma versão posterior.Version 2.0 or later of the common language runtime is currently loaded and assemblyFile was compiled with a later version.

Uma base de código que não é iniciada com “file://” foi especificada sem o WebPermission necessário.A codebase that does not start with "file://" was specified without the required WebPermission.

O parâmetro assemblyFile é uma cadeia de caracteres vazia ("").The assemblyFile parameter is an empty string ("").

O nome do assembly excede o tamanho máximo definido pelo sistema.The assembly name exceeds the system-defined maximum length.

Exemplos

O exemplo a seguir carrega um assembly dado seu nome de arquivo ou caminho.The following example loads an assembly given its file name or path.

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 

Comentários

O assemblyFile parâmetro deve se referir a um URI sem caracteres de escape.The assemblyFile parameter must refer to a URI without escape characters. Esse método fornece caracteres de escape para todos os caracteres inválidos no URI.This method supplies escape characters for all invalid characters in the URI.

Observação

Não há suporte para o FTP (File Transfer Protocol).File transfer protocol (FTP) is not supported. Se o URI fornecido para assemblyFile for um endereço FTP, o assembly não será carregado.If the URI supplied for assemblyFile is an FTP address, the assembly is not loaded. Nenhuma exceção é lançada.No exception is thrown.

assemblyFilepode ser absoluto ou relativo ao diretório atual, e o assembly é carregado no domínio do chamador.assemblyFile may be absolute or relative to the current directory, and the assembly is loaded into the domain of the caller.

Os assemblies podem ser carregados em um de três contextos ou podem ser carregados sem contexto:Assemblies can be loaded into one of three contexts, or can be loaded without context:

  • O contexto de carga contém assemblies encontrados pela sondagem: no GAC, em um armazenamento de assembly de host se o tempo de execução estiver hospedado ApplicationBase ou PrivateBinPath no e no domínio do aplicativo.The load context contains assemblies found by probing: in the GAC, in a host assembly store if the runtime is hosted, or in the ApplicationBase and PrivateBinPath of the application domain. A maioria das sobrecargas do método Load carrega os assemblies nesse contexto.Most overloads of the Load method load assemblies into this context.

  • O contexto de carga do contém assemblies para os quais o usuário forneceu um caminho não incluído nos diretórios pesquisados por investigação.The load-from context contains assemblies for which the user provided a path not included in the directories searched by probing. LoadFrom, CreateInstanceFrom e ExecuteAssembly são exemplos de métodos que carregam pelo caminho.LoadFrom, CreateInstanceFrom, and ExecuteAssembly are examples of methods that load by path.

    A partir do .NET Framework 4, se o URI assemblyFile de especificar um local remoto, o carregamento do assembly será desabilitado por LoadFrom padrão e o FileLoadExceptionmétodo lançará um.Starting with .NET Framework 4, if the URI of assemblyFile specifies a remote location, assembly loading is disabled by default, and the LoadFrom method throws a FileLoadException. Para habilitar a execução de código carregado a partir de locais remotos, <loadFromRemoteSources> você pode usar o elemento de configuração.To enable execution of code loaded from remote locations, you can use the <loadFromRemoteSources> configuration element.

  • O contexto somente de reflexão contém assemblies carregados com os ReflectionOnlyLoad métodos ReflectionOnlyLoadFrom e; o código nesses contextos não pode ser executado.The reflection-only context contains assemblies loaded with the ReflectionOnlyLoad and ReflectionOnlyLoadFrom methods; code in these contexts cannot be executed.

  • Se o usuário tiver gerado ou encontrado o assembly, ele não estará em nenhum contexto.If the user generated or found the assembly, it is not in any context. Isso se aplica a assemblies carregados usando sobrecargas do Load método que especificam uma matriz de bytes que contém um assembly e a assemblies dinâmicos transitórios criados com emissão de reflexo e não salvos em disco.This applies to assemblies loaded using overloads of the Load method that specify a byte array containing an assembly, and to transient dynamic assemblies created with reflection emit and not saved to disk.

O contexto de carga do permite que um assembly seja carregado de um caminho não incluído no teste e, ainda assim, permite que as dependências desse caminho sejam encontradas e carregadas porque as informações de caminho são mantidas pelo contexto.The load-from context allows an assembly to be loaded from a path not included in probing, and yet allows dependencies on that path to be found and loaded because the path information is maintained by the context.

O LoadFrom método tem as seguintes desvantagens.The LoadFrom method has the following disadvantages. Considere o uso de Load em seu lugar.Consider using Load instead.

  • Se um assembly com a mesma identidade já estiver carregado, LoadFrom retornará o assembly carregado, mesmo se um caminho diferente foi especificado.If an assembly with the same identity is already loaded, LoadFrom returns the loaded assembly even if a different path was specified.

  • Se um assembly for carregado com LoadFromo e posteriormente um assembly no contexto de carga tentar carregar o mesmo assembly pelo nome de exibição, a tentativa de carregamento falhará.If an assembly is loaded with LoadFrom, and later an assembly in the load context attempts to load the same assembly by display name, the load attempt fails. Isso pode ocorrer quando um assembly é desserializado.This can occur when an assembly is de-serialized.

  • Se um assembly for carregado com LoadFromo, e o caminho de investigação incluir um assembly com a mesma identidade, mas um local diferente InvalidCastException, MissingMethodExceptionum, ou outro comportamento inesperado poderá ocorrer.If an assembly is loaded with LoadFrom, and the probing path includes an assembly with the same identity but a different location, an InvalidCastException, MissingMethodException, or other unexpected behavior can occur.

  • LoadFrom exige FileIOPermissionAccess.Read e FileIOPermissionAccess.PathDiscovery, ou WebPermission, no caminho especificado.LoadFrom demands FileIOPermissionAccess.Read and FileIOPermissionAccess.PathDiscovery, or WebPermission, on the specified path.

  • Se uma imagem nativa existir para assemblyFile, ela não será usada.If a native image exists for assemblyFile, it is not used. O assembly não pode ser carregado como domínio neutro.The assembly cannot be loaded as domain neutral.

  • No .NET Framework versão 1,0 e 1,1, a política não é aplicada.In the .NET Framework version 1.0 and 1.1, policy is not applied.

Segurança

FileIOPermission
para ler um URI que começa com "file://".for reading a URI that begins with "file://". Enumeração associada: ReadAssociated enumeration: Read

WebPermission
para ler um URI que não começa com "file://".for reading a URI that does not begin with "file://".

LoadFrom(String, Evidence) LoadFrom(String, Evidence) LoadFrom(String, Evidence) LoadFrom(String, Evidence)

Aviso

Esta API agora é obsoleta.

Carrega um assembly dado seu nome de arquivo ou caminho e fornecendo evidência de segurança.Loads an assembly given its file name or path and supplying security evidence.

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, System::Security::Policy::Evidence ^ securityEvidence);
[System.Obsolete]
[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
Public Shared Function LoadFrom (assemblyFile As String, securityEvidence As Evidence) As Assembly

Parâmetros

assemblyFile
String String String String

O nome ou o caminho do arquivo que contém o manifesto do assembly.The name or path of the file that contains the manifest of the assembly.

securityEvidence
Evidence Evidence Evidence Evidence

Evidência para carregar o assembly.Evidence for loading the assembly.

Retornos

O assembly carregado.The loaded assembly.

Exceções

assemblyFile não foi encontrado, ou o módulo que você está tentando carregar não especifica uma extensão de nome de arquivo.assemblyFile is not found, or the module you are trying to load does not specify a filename extension.

Não foi possível carregar um arquivo que foi encontrado.A file that was found could not be loaded.

- ou --or- O securityEvidence não é ambíguo e é determinado como inválido.The securityEvidence is not ambiguous and is determined to be invalid.

- ou --or-

A capacidade de executar código em assemblies remotos está desabilitada.The ability to execute code in remote assemblies is disabled. Veja <loadFromRemoteSources>.See <loadFromRemoteSources>.

assemblyFile não é um assembly válido; por exemplo, um assembly de 32 bits em um processo de 64 bits.assemblyFile is not a valid assembly; for example, a 32-bit assembly in a 64-bit process. Consulte o tópico de exceção para obter mais informações.See the exception topic for more information.

- ou --or- A versão 2,0 ou posterior do Common Language Runtime está carregada e assemblyFile foi compilada com uma versão posterior.Version 2.0 or later of the common language runtime is currently loaded and assemblyFile was compiled with a later version.

Uma base de código que não é iniciada com “file://” foi especificada sem o WebPermission necessário.A codebase that does not start with "file://" was specified without the required WebPermission.

O parâmetro assemblyFile é uma cadeia de caracteres vazia ("").The assemblyFile parameter is an empty string ("").

O nome do assembly excede o tamanho máximo definido pelo sistema.The assembly name exceeds the system-defined maximum length.

Comentários

O assemblyFile parâmetro deve se referir a um URI sem caracteres de escape.The assemblyFile parameter must refer to a URI without escape characters. Esse método fornece caracteres de escape para todos os caracteres inválidos no URI.This method supplies escape characters for all invalid characters in the URI.

Observação

Não há suporte para o FTP (File Transfer Protocol).File transfer protocol (FTP) is not supported. Se o URI fornecido para assemblyFile for um endereço FTP, o assembly não será carregado.If the URI supplied for assemblyFile is an FTP address, the assembly is not loaded. Nenhuma exceção é lançada.No exception is thrown.

assemblyFilepode ser absoluto ou relativo ao diretório atual, e o assembly é carregado no domínio do chamador.assemblyFile may be absolute or relative to the current directory, and the assembly is loaded into the domain of the caller.

Os assemblies podem ser carregados em um de três contextos ou podem ser carregados sem contexto:Assemblies can be loaded into one of three contexts, or can be loaded without context:

  • O contexto de carga contém assemblies encontrados pela sondagem: no GAC, em um armazenamento de assembly de host se o tempo de execução estiver hospedado ApplicationBase ou PrivateBinPath no e no domínio do aplicativo.The load context contains assemblies found by probing: in the GAC, in a host assembly store if the runtime is hosted, or in the ApplicationBase and PrivateBinPath of the application domain. A maioria das sobrecargas do método Load carrega os assemblies nesse contexto.Most overloads of the Load method load assemblies into this context.

  • O contexto de carga do contém assemblies para os quais o usuário forneceu um caminho não incluído nos diretórios pesquisados por investigação.The load-from context contains assemblies for which the user provided a path not included in the directories searched by probing. LoadFrom, CreateInstanceFrom e ExecuteAssembly são exemplos de métodos que carregam pelo caminho.LoadFrom, CreateInstanceFrom, and ExecuteAssembly are examples of methods that load by path.

    A partir do .NET Framework 4, se o URI assemblyFile de especificar um local remoto, o carregamento do assembly será desabilitado por LoadFrom padrão e o FileLoadExceptionmétodo lançará um.Starting with .NET Framework 4, if the URI of assemblyFile specifies a remote location, assembly loading is disabled by default, and the LoadFrom method throws a FileLoadException. Para habilitar a execução de código carregado a partir de locais remotos, <loadFromRemoteSources> você pode usar o elemento de configuração.To enable execution of code loaded from remote locations, you can use the <loadFromRemoteSources> configuration element.

  • O contexto somente de reflexão contém assemblies carregados com os ReflectionOnlyLoad métodos ReflectionOnlyLoadFrom e; o código nesses contextos não pode ser executado.The reflection-only context contains assemblies loaded with the ReflectionOnlyLoad and ReflectionOnlyLoadFrom methods; code in these contexts cannot be executed.

  • Se o usuário tiver gerado ou encontrado o assembly, ele não estará em nenhum contexto.If the user generated or found the assembly, it is not in any context. Isso se aplica a assemblies carregados usando sobrecargas do Load método que especificam uma matriz de bytes que contém um assembly e a assemblies dinâmicos transitórios criados com emissão de reflexo e não salvos em disco.This applies to assemblies loaded using overloads of the Load method that specify a byte array containing an assembly, and to transient dynamic assemblies created with reflection emit and not saved to disk.

O contexto de carga do permite que um assembly seja carregado de um caminho não incluído no teste e, ainda assim, permite que as dependências desse caminho sejam encontradas e carregadas porque as informações de caminho são mantidas pelo contexto.The load-from context allows an assembly to be loaded from a path not included in probing, and yet allows dependencies on that path to be found and loaded because the path information is maintained by the context.

O LoadFrom método tem as seguintes desvantagens.The LoadFrom method has the following disadvantages. Considere o uso de Load em seu lugar.Consider using Load instead.

  • Se um assembly com a mesma identidade já estiver carregado, LoadFrom retornará o assembly carregado, mesmo se um caminho diferente foi especificado.If an assembly with the same identity is already loaded, LoadFrom returns the loaded assembly even if a different path was specified.

  • Se um assembly for carregado com LoadFromo e posteriormente um assembly no contexto de carga tentar carregar o mesmo assembly pelo nome de exibição, a tentativa de carregamento falhará.If an assembly is loaded with LoadFrom, and later an assembly in the load context attempts to load the same assembly by display name, the load attempt fails. Isso pode ocorrer quando um assembly é desserializado.This can occur when an assembly is deserialized.

  • Se um assembly for carregado com LoadFromo, e o caminho de investigação incluir um assembly com a mesma identidade, mas um local diferente InvalidCastException, MissingMethodExceptionum, ou outro comportamento inesperado poderá ocorrer.If an assembly is loaded with LoadFrom, and the probing path includes an assembly with the same identity but a different location, an InvalidCastException, MissingMethodException, or other unexpected behavior can occur.

  • LoadFrom exige FileIOPermissionAccess.Read e FileIOPermissionAccess.PathDiscovery, ou WebPermission, no caminho especificado.LoadFrom demands FileIOPermissionAccess.Read and FileIOPermissionAccess.PathDiscovery, or WebPermission, on the specified path.

  • Se uma imagem nativa existir para assemblyFile, ela não será usada.If a native image exists for assemblyFile, it is not used. O assembly não pode ser carregado como domínio neutro.The assembly cannot be loaded as domain neutral.

  • No .NET Framework versão 1,0 e 1,1, a política não é aplicada.In the .NET Framework version 1.0 and 1.1, policy is not applied.

Se determinadas permissões são concedidas ou não a um assembly é algo que se baseia na evidência.Whether certain permissions are granted or not granted to an assembly is based on evidence. As regras para mesclagem de evidência de segurança e assembly são as seguintes:The rules for assembly and security evidence merging are as follows:

  • Quando você usa um LoadFrom método Evidence sem parâmetro, o assembly é carregado com a evidência que o carregador fornece.When you use a LoadFrom method with no Evidence parameter, the assembly is loaded with the evidence that the loader supplies.

  • Quando você usa um LoadFrom método com um Evidence parâmetro, as partes das evidências são mescladas.When you use a LoadFrom method with an Evidence parameter, pieces of evidence are merged. Partes de evidência fornecidas como um argumento para o LoadFrom método substituem as partes das evidências fornecidas pelo carregador.Pieces of evidence supplied as an argument to the LoadFrom method supersede pieces of evidence supplied by the loader.

  • Se você chamar esse método mais de uma vez no mesmo assembly, mas com uma evidência diferente especificada, o Common Language Runtime não lança um FileLoadException porque a igualdade e a integridade das diferentes especificações de evidência não podem ser determinadas.If you call this method more than once on the same assembly but with a different evidence specified, the common language runtime does not throw a FileLoadException because the equality and integrity of the different evidence specifications cannot be determined. A evidência que é realizada pela primeira vez é a evidência que é usada.The evidence that first succeeds is the evidence that is used.

  • Quando você usa um LoadFrom método com um Byte[] parâmetro para carregar uma imagem de formato de arquivo de objeto comum (COFF), a evidência é combinada.When you use a LoadFrom method with a Byte[] parameter to load a common object file format (COFF) image, evidence is combined. Zonee são herdados do assembly de chamada e Hash e StrongName são extraídos do assembly COFF. Site UrlZone, Url and Site are inherited from the calling assembly, and Hash and StrongName are taken from the COFF assembly.

  • Quando você usa um LoadFrom método com um Byte[] parâmetro e Evidence para carregar uma imagem COFF, somente a evidência fornecida é usada.When you use a LoadFrom method with a Byte[] parameter and Evidence to load a COFF image, only the supplied evidence is used. A evidência do assembly de chamada e a evidência da imagem COFF é ignorada.Evidence of the calling assembly and evidence of the COFF image is ignored.

Segurança

SecurityPermission
para carregar um assembly com evidências.to load an assembly with evidence. Enumeração associada: ControlEvidenceAssociated enumeration: ControlEvidence

FileIOPermission
para ler um URI que começa com "file://".for reading a URI that begins with "file://". Enumeração associada: ReadAssociated enumeration: Read

WebPermission
para ler um URI que não começa com "file://".for reading a URI that does not begin with "file://".

Veja também

Aplica-se a