Assembly.LoadFrom Método

Definição

Carrega um assembly.

Sobrecargas

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

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.

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

Carrega um assembly de acordo com o nome de arquivo ou caminho, valor e algoritmo de hash.

LoadFrom(String)

Carrega um assembly de acordo com o nome de arquivo ou caminho.

LoadFrom(String, Evidence)
Obsoleto.

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

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 para o LoadFrom método gera um FileLoadException. Para carregar o assembly e executar seu código, você deve:

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 considerando seu nome de arquivo ou caminho, sua evidência de segurança, seu valor de hash e seu 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 o 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 calculado.

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 que foi encontrado.

- ou -

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

- ou -

A capacidade de executar código em assemblies remotos está desabilitada. Veja <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 é iniciada com “file://” foi especificada sem o WebPermission necessário.

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

O nome do assembly excede o tamanho 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 para assemblyFile for 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 e PrivateBinPath do domínio do aplicativo. A maioria das sobrecargas do método Load carrega os assemblies nesse contexto.

  • O contexto load-from contém assemblies para os quais o usuário forneceu um caminho não incluído nos diretórios pesquisados pela investigação. LoadFrom, CreateInstanceFrom e ExecuteAssembly são exemplos de métodos que carregam pelo caminho.

    Começando com .NET Framework 4, se o URI de assemblyFile especificar um local remoto, o carregamento do assembly será desabilitado por padrão e o LoadFrom método gerará um FileLoadException. Para habilitar a execução de código carregado de locais remotos, você pode usar o <loadFromRemoteSources> elemento de configuração.

  • O contexto somente reflexão contém assemblies carregados com os ReflectionOnlyLoad métodos e ReflectionOnlyLoadFrom ; o 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 no 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 as dependências desse caminho sejam encontradas e carregadas porque as informações de 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 foi especificado.

  • Se um assembly for carregado com LoadFrome, 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 for carregado com LoadFrome o caminho de investigação incluir um assembly com a mesma identidade, mas um local diferente, um InvalidCastException, MissingMethodExceptionou outro comportamento inesperado poderá ocorrer.

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

  • Se existir uma imagem nativa para assemblyFile, ela 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 mesclagem de evidências 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 que o carregador fornece.

  • Quando você usa um LoadFrom método com um Evidence parâmetro , as evidências são mescladas. Partes de evidências fornecidas como um argumento para o LoadFrom método substituem partes de evidências 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, apenas 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, Byte[], AssemblyHashAlgorithm)

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

Carrega um assembly de acordo com o nome de arquivo ou caminho, valor e algoritmo de hash.

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

Parâmetros

assemblyFile
String

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

hashValue
Byte[]

O valor do código hash calculado.

hashAlgorithm
AssemblyHashAlgorithm

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

Retornos

O assembly carregado.

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 que foi encontrado.

- ou -

A capacidade de executar código em assemblies remotos está desabilitada. Veja <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 é iniciada com “file://” foi especificada sem o WebPermission necessário.

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

O nome do assembly excede o tamanho 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 para assemblyFile for 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 e PrivateBinPath do domínio do aplicativo. A maioria das sobrecargas do método Load carrega os assemblies nesse contexto.

  • O contexto load-from contém assemblies para os quais o usuário forneceu um caminho que não está incluído na investigação. LoadFrom, CreateInstanceFrom e ExecuteAssembly são exemplos de métodos que carregam pelo caminho.

    Começando com .NET Framework 4, se o URI de assemblyFile especificar um local remoto, o carregamento do assembly será desabilitado por padrão e o LoadFrom método gerará um FileLoadException. Para habilitar a execução de código carregado de locais remotos, você pode usar o <loadFromRemoteSources> elemento de configuração.

  • O contexto somente reflexão contém assemblies carregados com os ReflectionOnlyLoad métodos e ReflectionOnlyLoadFrom ; o 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 no 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 foi especificado.

  • Se um assembly for carregado com LoadFrome, 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.

  • Se um assembly for carregado com LoadFrome o caminho de investigação incluir um assembly com a mesma identidade, mas um local diferente, um InvalidCastException, MissingMethodExceptionou outro comportamento inesperado poderá ocorrer.

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

  • Se existir uma imagem nativa para assemblyFile, ela 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)

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

Carrega um assembly de acordo com o nome de arquivo ou caminho.

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

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

Retornos

O assembly carregado.

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 que foi encontrado.

- ou -

A capacidade de executar código em assemblies remotos está desabilitada. Veja <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 é iniciada com “file://” foi especificada sem o WebPermission necessário.

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

O nome do assembly excede o tamanho 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.
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. 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 para assemblyFile for 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 e PrivateBinPath do domínio do aplicativo. A maioria das sobrecargas do método Load carrega os assemblies nesse contexto.

  • O contexto load-from contém assemblies para os quais o usuário forneceu um caminho não incluído nos diretórios pesquisados pela investigação. LoadFrom, CreateInstanceFrom e ExecuteAssembly são exemplos de métodos que carregam pelo caminho.

    Começando com .NET Framework 4, se o URI de assemblyFile especificar um local remoto, o carregamento do assembly será desabilitado por padrão e o LoadFrom método gerará um FileLoadException. Para habilitar a execução do código carregado de locais remotos, você pode usar o <loadFromRemoteSources> elemento de configuração .

  • O contexto somente reflexão contém assemblies carregados com os ReflectionOnlyLoad métodos e ReflectionOnlyLoadFrom . O 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 no 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 no contexto de origem de carregamento, LoadFrom retornará o assembly carregado, mesmo se um caminho diferente foi 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.

  • Chamar LoadFrom com um local que esteja 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 passado para 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 para assemblyFile, ela 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ência 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 o 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 que foi encontrado.

- ou -

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

- ou -

A capacidade de executar código em assemblies remotos está desabilitada. Veja <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 é iniciada com “file://” foi especificada sem o WebPermission necessário.

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

O nome do assembly excede o tamanho 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 para assemblyFile for 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 e PrivateBinPath do domínio do aplicativo. A maioria das sobrecargas do método Load carrega os assemblies nesse contexto.

  • O contexto load-from contém assemblies para os quais o usuário forneceu um caminho não incluído nos diretórios pesquisados pela investigação. LoadFrom, CreateInstanceFrom e ExecuteAssembly são exemplos de métodos que carregam pelo caminho.

    Começando com .NET Framework 4, se o URI de assemblyFile especificar um local remoto, o carregamento do assembly será desabilitado por padrão e o LoadFrom método gerará um FileLoadException. Para habilitar a execução do código carregado de locais remotos, você pode usar o <loadFromRemoteSources> elemento de configuração .

  • O contexto somente reflexão contém assemblies carregados com os ReflectionOnlyLoad métodos e ReflectionOnlyLoadFrom . O 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 no 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 foi especificado.

  • Se um assembly for carregado com LoadFrome, 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.

  • Se um assembly for carregado com LoadFrome o caminho de investigação incluir um assembly com a mesma identidade, mas um local diferente, um InvalidCastException, MissingMethodExceptionou outro comportamento inesperado poderá ocorrer.

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

  • Se existir uma imagem nativa para assemblyFile, ela 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 mesclagem de evidências 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 que o carregador fornece.

  • Quando você usa um LoadFrom método com um Evidence parâmetro , as evidências são mescladas. Partes de evidências fornecidas como um argumento para o LoadFrom método substituem partes de evidências 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, apenas 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