Compartilhar via


Assembly.LoadFrom Método

Definição

Carrega um assembly.

Sobrecargas

Nome Description
LoadFrom(String, Byte[], AssemblyHashAlgorithm)
Obsoleto.

Carrega um assembly dado seu nome de arquivo ou caminho, valor de hash e algoritmo de hash.

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

Carrega um assembly dado seu nome de arquivo ou caminho, evidência de segurança, valor de hash e algoritmo de hash.

LoadFrom(String)

Carrega um assembly dado seu nome de arquivo ou caminho.

LoadFrom(String, Evidence)
Obsoleto.

Carrega um assembly dado seu nome de arquivo ou caminho e fornecendo evidências de segurança.

Comentários

Somente .NET Framework: Consulte <loadFromRemoteSources> como carregar assemblies de locais remotos.

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

Origem:
Assembly.cs
Origem:
Assembly.cs
Origem:
Assembly.cs
Origem:
Assembly.cs
Origem:
Assembly.cs

Cuidado

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

Carrega um assembly dado seu nome de arquivo ou caminho, valor de hash e algoritmo de hash.

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

Parâmetros

assemblyFile
String

O nome ou caminho do arquivo que contém o manifesto do assembly.

hashValue
Byte[]

O valor do código hash computado.

hashAlgorithm
AssemblyHashAlgorithm

O algoritmo de hash usado para arquivos de hash e para gerar o nome forte.

Retornos

O assembly carregado.

Atributos

Exceções

Somente .NET Core e .NET 5+: em todos os casos.

assemblyFile é null.

assemblyFile não foi encontrado ou o módulo que você está tentando carregar não especifica uma extensão de nome de arquivo.

Não foi possível carregar um arquivo encontrado.

- ou -

assemblyFile especifica um local desabilitado com base em <loadFromRemoteSources>.

assemblyFile não é um assembly válido para o runtime carregado no momento; por exemplo, um assembly de 32 bits em um processo de 64 bits.

Uma base de código que não começa com "file://" foi especificada sem o necessário WebPermission.

O assemblyFile parâmetro é uma cadeia de caracteres vazia ("").

O nome do assembly excede o comprimento máximo definido pelo sistema.

Comentários

Essa API não tem suporte no .NET Core/.NET 5+. Esse método é gerado NotSupportedException quando chamado. Use LoadFrom(String) em seu lugar.

O assemblyFile parâmetro deve se referir a um URI sem caracteres de escape. Esse método fornece caracteres de escape para todos os caracteres inválidos no URI.

Observação

Não há suporte para FTP (protocolo de transferência de arquivo). Se o URI fornecido for assemblyFile um endereço FTP, o assembly não será carregado. Nenhuma exceção é gerada.

assemblyFile pode ser absoluto ou relativo ao diretório atual.

Os assemblies podem ser carregados em um dos três contextos ou podem ser carregados sem contexto:

  • O contexto de carga contém assemblies encontrados pela investigação: no cache de assembly global, em um repositório de assembly de host se o runtime estiver hospedado ou no ApplicationBase domínio e PrivateBinPath do aplicativo. A maioria das sobrecargas do método Load carrega conjuntos nesse contexto.

  • O contexto de carregamento contém assemblies para os quais o usuário forneceu um caminho que não está incluído na investigação. LoadFrom, CreateInstanceFrome ExecuteAssembly são exemplos de métodos que são carregados por caminho.

    Consulte <loadFromRemoteSources> como carregar assemblies de locais remotos.

  • O contexto somente reflexão contém assemblies carregados com os métodos e ReflectionOnlyLoadFrom o ReflectionOnlyLoad código nesses contextos não pode ser executado.

  • Se o usuário gerou ou encontrou o assembly, ele não está em nenhum contexto. 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 a emissão de reflexão e não salvos em disco.

O contexto de carregamento permite que um assembly seja carregado de um caminho que não está incluído na investigação e ainda permite que dependências nesse caminho sejam encontradas e carregadas porque as informações do caminho são mantidas pelo contexto.

O LoadFrom método tem as seguintes desvantagens. Considere o uso de Load em seu lugar.

  • Se um assembly com a mesma identidade já estiver carregado, LoadFrom retornará o assembly carregado mesmo se um caminho diferente tiver sido especificado.

  • Se um assembly for carregado e LoadFrom, posteriormente, um assembly no contexto de carga tentar carregar o mesmo assembly por nome de exibição, a tentativa de carga falhará. Isso pode ocorrer quando um assembly é desserializado.

  • Se um assembly é carregado com LoadFrom, e o caminho de investigação inclui um assembly com a mesma identidade, mas um local diferente, um InvalidCastExceptionou MissingMethodExceptionoutro comportamento inesperado pode ocorrer.

  • LoadFrom exige FileIOPermissionAccess.Read e FileIOPermissionAccess.PathDiscovery, ou WebPermission, no caminho especificado.

  • Se existir uma imagem nativa, assemblyFileela não será usada. O assembly não pode ser carregado como de domínio neutro.

O assembly é carregado com a evidência que o carregador fornece.

Aplica-se a

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

Cuidado

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.

Carrega um assembly dado seu nome de arquivo ou caminho, evidência de segurança, valor de hash e algoritmo de hash.

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

Parâmetros

assemblyFile
String

O nome ou caminho do arquivo que contém o manifesto do assembly.

securityEvidence
Evidence

Evidência para carregar o assembly.

hashValue
Byte[]

O valor do código hash computado.

hashAlgorithm
AssemblyHashAlgorithm

O algoritmo de hash usado para arquivos de hash e para gerar o nome forte.

Retornos

O assembly carregado.

Atributos

Exceções

assemblyFile é null.

assemblyFile não foi encontrado ou o módulo que você está tentando carregar não especifica uma extensão de nome de arquivo.

Não foi possível carregar um arquivo encontrado.

- ou -

O securityEvidence não é ambíguo e é determinado como inválido.

- ou -

assemblyFile especifica um local desabilitado com base em <loadFromRemoteSources>.

assemblyFile não é um assembly válido para o runtime carregado no momento; por exemplo, um assembly de 32 bits em um processo de 64 bits.

Uma base de código que não começa com "file://" foi especificada sem o necessário WebPermission.

O assemblyFile parâmetro é uma cadeia de caracteres vazia ("").

O nome do assembly excede o comprimento máximo definido pelo sistema.

Comentários

O assemblyFile parâmetro deve se referir a um URI sem caracteres de escape. Esse método fornece caracteres de escape para todos os caracteres inválidos no URI.

Observação

Não há suporte para FTP (protocolo de transferência de arquivo). Se o URI fornecido for assemblyFile um endereço FTP, o assembly não será carregado. Nenhuma exceção é gerada.

assemblyFile pode ser absoluto ou relativo ao diretório atual.

Os assemblies podem ser carregados em um dos três contextos ou podem ser carregados sem contexto:

  • O contexto de carga contém assemblies encontrados pela investigação: no GAC, em um repositório de assembly de host, se o runtime estiver hospedado ou no ApplicationBase domínio e PrivateBinPath do aplicativo. A maioria das sobrecargas do método Load carrega conjuntos nesse contexto.

  • O contexto de carregamento contém assemblies para os quais o usuário forneceu um caminho não incluído nos diretórios pesquisados pela investigação. LoadFrom, CreateInstanceFrome ExecuteAssembly são exemplos de métodos que são carregados por caminho.

    Consulte <loadFromRemoteSources> como carregar assemblies de locais remotos.

  • O contexto somente reflexão contém assemblies carregados com os métodos e ReflectionOnlyLoadFrom o ReflectionOnlyLoad código nesses contextos não pode ser executado.

  • Se o usuário gerou ou encontrou o assembly, ele não está em nenhum contexto. 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 a emissão de reflexão e não salvos em disco.

O contexto de carregamento permite que um assembly seja carregado de um caminho não incluído na investigação e ainda permite que dependências nesse caminho sejam encontradas e carregadas porque as informações do caminho são mantidas pelo contexto.

O LoadFrom método tem as seguintes desvantagens. Considere o uso de Load em seu lugar.

  • Se um assembly com a mesma identidade já estiver carregado, LoadFrom retornará o assembly carregado mesmo se um caminho diferente tiver sido especificado.

  • Se um assembly for carregado e LoadFrom, posteriormente, um assembly no contexto de carga tentar carregar o mesmo assembly por nome de exibição, a tentativa de carga falhará. Isso pode ocorrer quando um assembly é desserializado.

  • Se um assembly é carregado com LoadFrom, e o caminho de investigação inclui um assembly com a mesma identidade, mas um local diferente, um InvalidCastExceptionou MissingMethodExceptionoutro comportamento inesperado pode ocorrer.

  • LoadFrom exige FileIOPermissionAccess.Read e FileIOPermissionAccess.PathDiscovery, ou WebPermission, no caminho especificado.

  • Se existir uma imagem nativa, assemblyFileela não será usada. O assembly não pode ser carregado como neutro de domínio.

Se determinadas permissões são concedidas ou não a um assembly é algo que se baseia na evidência. As regras para a mesclagem de provas de assembly e segurança são as seguintes:

  • Quando você usa um LoadFrom método sem Evidence parâmetro, o assembly é carregado com a evidência fornecida pelo carregador.

  • Quando você usa um LoadFrom método com um Evidence parâmetro, as evidências são mescladas. Partes de evidência fornecidas como um argumento para o LoadFrom método substituem partes de evidência fornecidas pelo carregador.

  • 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 gerará um FileLoadException porque a igualdade e a integridade das diferentes especificações de evidência não podem ser determinadas. A evidência que primeiro é bem-sucedida é a evidência que é usada.

  • Quando você usa um LoadFrom método com um Byte[] parâmetro para carregar uma imagem coff (formato de arquivo de objeto) comum, a evidência é combinada. Zone, Url e Site são herdados do assembly de chamada e HashStrongName são retirados do assembly COFF.

  • Quando você usa um LoadFrom método com um Byte[] parâmetro e Evidence para carregar uma imagem COFF, somente as evidências fornecidas são usadas. As evidências do assembly de chamada e da evidência da imagem COFF são ignoradas.

Aplica-se a

LoadFrom(String)

Origem:
Assembly.cs
Origem:
Assembly.cs
Origem:
Assembly.cs
Origem:
Assembly.cs
Origem:
Assembly.cs

Carrega um assembly dado seu nome de arquivo ou caminho.

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

Parâmetros

assemblyFile
String

O nome ou caminho do arquivo que contém o manifesto do assembly.

Retornos

O assembly carregado.

Atributos

Exceções

assemblyFile é null.

assemblyFile não foi encontrado ou o módulo que você está tentando carregar não especifica uma extensão de nome de arquivo.

Não foi possível carregar um arquivo encontrado.

- ou -

Somente .NET Framework: assemblyFile especifica um local desabilitado com base em <loadFromRemoteSources>.

assemblyFile não é um assembly válido para o runtime carregado no momento; por exemplo, um assembly de 32 bits em um processo de 64 bits.

Uma base de código que não começa com "file://" foi especificada sem o necessário WebPermission.

O assemblyFile parâmetro é uma cadeia de caracteres vazia ("").

O nome do assembly excede o comprimento máximo definido pelo sistema.

Exemplos

O exemplo a seguir carrega um assembly dado seu nome de arquivo ou caminho.

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

Essa API está presente no .NET Core para compatibilidade, mas é recomendável usar AssemblyLoadContext sobrecargas.

O assembly é carregado no AssemblyLoadContext padrão. Para obter mais informações sobre o carregamento do assembly, consulte o algoritmo de carregamento de assembly gerenciado.

O assemblyFile parâmetro deve se referir a um URI sem caracteres de escape. Esse método fornece caracteres de escape para todos os caracteres inválidos no URI.

Observação

Somente .NET Framework: não há suporte para FTP (protocolo de transferência de arquivo). Se o URI fornecido for assemblyFile um endereço FTP, o assembly não será carregado. Nenhuma exceção é gerada.

assemblyFile pode ser absoluto ou relativo ao diretório atual.

Somente .NET Framework: Os assemblies podem ser carregados em um dos três contextos ou podem ser carregados sem contexto:

  • O contexto de carga contém assemblies encontrados pela investigação: no GAC, em um repositório de assembly de host, se o runtime estiver hospedado ou no ApplicationBase domínio e PrivateBinPath do aplicativo. A maioria das sobrecargas do método Load carrega conjuntos nesse contexto.

  • O contexto de carregamento contém assemblies para os quais o usuário forneceu um caminho não incluído nos diretórios pesquisados pela investigação. Ele também permite que dependências nesse caminho sejam encontradas e carregadas porque as informações do caminho são mantidas pelo contexto. LoadFrom, CreateInstanceFrome ExecuteAssembly são exemplos de métodos que são carregados por caminho.

    Consulte <loadFromRemoteSources> como carregar assemblies de locais remotos.

  • O contexto somente reflexão contém assemblies carregados com os métodos e ReflectionOnlyLoadFrom o ReflectionOnlyLoad código nesses contextos não pode ser executado.

  • Se o usuário gerou ou encontrou o assembly, ele não está em nenhum contexto. 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 a emissão de reflexão e não salvos em disco.

O LoadFrom método tem as seguintes desvantagens. Considere o uso de Load em seu lugar.

  • Se um assembly com a mesma identidade já estiver carregado no contexto de carregamento, LoadFrom retornará o assembly carregado mesmo se um caminho diferente tiver sido especificado.

  • Um assembly pode ser carregado no contexto de carregamento, mesmo que exista um assembly com a mesma identidade no contexto de carga. A interoperabilidade entre os dois assemblies não funcionará, levando a erros como InvalidCastException, MissingMethodExceptionou outro comportamento inesperado.

  • A chamada LoadFrom com um local que está no caminho de investigação carregará o assembly no contexto de carga e não no contexto de carregamento.

  • Se um arquivo de assembly cuja identidade for desativada por uma política de redirecionamento de associação for passada LoadFrom, a política será aplicada e o assembly será carregado do caminho de investigação no contexto de carga.

  • Se um assembly for carregado no contexto de carregamento e, posteriormente, um assembly no contexto de carga tentar carregar o mesmo assembly por nome de exibição, a tentativa de carregamento falhará. Isso pode ocorrer quando um assembly é desserializado.

  • LoadFrom exige FileIOPermissionAccess.Read e FileIOPermissionAccess.PathDiscovery, ou WebPermission, no caminho especificado.

  • Se existir uma imagem nativa, assemblyFileela não será usada. O assembly não pode ser carregado como neutro de domínio.

Aplica-se a

LoadFrom(String, Evidence)

Cuidado

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.

Carrega um assembly dado seu nome de arquivo ou caminho e fornecendo evidências de segurança.

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

Parâmetros

assemblyFile
String

O nome ou caminho do arquivo que contém o manifesto do assembly.

securityEvidence
Evidence

Evidência para carregar o assembly.

Retornos

O assembly carregado.

Atributos

Exceções

assemblyFile é null.

assemblyFile não foi encontrado ou o módulo que você está tentando carregar não especifica uma extensão de nome de arquivo.

Não foi possível carregar um arquivo encontrado.

- ou -

O securityEvidence não é ambíguo e é determinado como inválido.

- ou -

assemblyFile especifica um local desabilitado com base em <loadFromRemoteSources>.

assemblyFile não é um assembly válido para o runtime carregado no momento; por exemplo, um assembly de 32 bits em um processo de 64 bits.

Uma base de código que não começa com "file://" foi especificada sem o necessário WebPermission.

O assemblyFile parâmetro é uma cadeia de caracteres vazia ("").

O nome do assembly excede o comprimento máximo definido pelo sistema.

Comentários

O assemblyFile parâmetro deve se referir a um URI sem caracteres de escape. Esse método fornece caracteres de escape para todos os caracteres inválidos no URI.

Observação

Não há suporte para FTP (protocolo de transferência de arquivo). Se o URI fornecido for assemblyFile um endereço FTP, o assembly não será carregado. Nenhuma exceção é gerada.

assemblyFile pode ser absoluto ou relativo ao diretório atual.

Os assemblies podem ser carregados em um dos três contextos ou podem ser carregados sem contexto:

  • O contexto de carga contém assemblies encontrados pela investigação: no GAC, em um repositório de assembly de host, se o runtime estiver hospedado ou no ApplicationBase domínio e PrivateBinPath do aplicativo. A maioria das sobrecargas do método Load carrega conjuntos nesse contexto.

  • O contexto de carregamento contém assemblies para os quais o usuário forneceu um caminho não incluído nos diretórios pesquisados pela investigação. LoadFrom, CreateInstanceFrome ExecuteAssembly são exemplos de métodos que são carregados por caminho.

    Consulte <loadFromRemoteSources> como carregar assemblies de locais remotos.

  • O contexto somente reflexão contém assemblies carregados com os métodos e ReflectionOnlyLoadFrom o ReflectionOnlyLoad código nesses contextos não pode ser executado.

  • Se o usuário gerou ou encontrou o assembly, ele não está em nenhum contexto. 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 a emissão de reflexão e não salvos em disco.

O contexto de carregamento permite que um assembly seja carregado de um caminho não incluído na investigação e ainda permite que dependências nesse caminho sejam encontradas e carregadas porque as informações do caminho são mantidas pelo contexto.

O LoadFrom método tem as seguintes desvantagens. Considere o uso de Load em seu lugar.

  • Se um assembly com a mesma identidade já estiver carregado, LoadFrom retornará o assembly carregado mesmo se um caminho diferente tiver sido especificado.

  • Se um assembly for carregado e LoadFrom, posteriormente, um assembly no contexto de carga tentar carregar o mesmo assembly por nome de exibição, a tentativa de carga falhará. Isso pode ocorrer quando um assembly é desserializado.

  • Se um assembly é carregado com LoadFrom, e o caminho de investigação inclui um assembly com a mesma identidade, mas um local diferente, um InvalidCastExceptionou MissingMethodExceptionoutro comportamento inesperado pode ocorrer.

  • LoadFrom exige FileIOPermissionAccess.Read e FileIOPermissionAccess.PathDiscovery, ou WebPermission, no caminho especificado.

  • Se existir uma imagem nativa, assemblyFileela não será usada. O assembly não pode ser carregado como neutro de domínio.

Se determinadas permissões são concedidas ou não a um assembly é algo que se baseia na evidência. As regras para a mesclagem de provas de assembly e segurança são as seguintes:

  • Quando você usa um LoadFrom método sem Evidence parâmetro, o assembly é carregado com a evidência fornecida pelo carregador.

  • Quando você usa um LoadFrom método com um Evidence parâmetro, as evidências são mescladas. Partes de evidência fornecidas como um argumento para o LoadFrom método substituem partes de evidência fornecidas pelo carregador.

  • 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 gerará um FileLoadException porque a igualdade e a integridade das diferentes especificações de evidência não podem ser determinadas. A evidência que primeiro é bem-sucedida é a evidência que é usada.

  • Quando você usa um LoadFrom método com um Byte[] parâmetro para carregar uma imagem coff (formato de arquivo de objeto) comum, a evidência é combinada. Zone, Url e Site são herdados do assembly de chamada e HashStrongName são retirados do assembly COFF.

  • Quando você usa um LoadFrom método com um Byte[] parâmetro e Evidence para carregar uma imagem COFF, somente as evidências fornecidas são usadas. As evidências do assembly de chamada e da evidência da imagem COFF são ignoradas.

Confira também

Aplica-se a