Assembly.LoadFrom Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
Somente .NET Framework: Consulte <loadFromRemoteSources>
para carregar assemblies de locais remotos.
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 -
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 é 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.
Consulte
<loadFromRemoteSources>
para carregar assemblies de locais remotos.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
eSite
são herdados do assembly de chamada eHash
StrongName
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
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 que foi 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 é 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
No .NET Core e no .NET 5+, esse método é gerado NotSupportedException quando chamado. Use LoadFrom(String) em vez disso.
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.
Consulte
<loadFromRemoteSources>
para carregar assemblies de locais remotos.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 -
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 é 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.
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 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. 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, CreateInstanceFrom e ExecuteAssembly são exemplos de métodos que carregam pelo caminho.
Consulte
<loadFromRemoteSources>
para carregar assemblies de locais remotos.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 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 -
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 é 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.
Consulte
<loadFromRemoteSources>
para carregar assemblies de locais remotos.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 segurança e assembly 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ê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
eSite
são herdados do assembly de chamada eHash
eStrongName
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 a evidência fornecida é usada. A evidência do assembly de chamada e a evidência da imagem COFF são ignoradas.