Assembly.Load Método

Definição

Carrega um assembly.

Sobrecargas

Load(Byte[], Byte[], SecurityContextSource)

Carrega o assembly com uma imagem baseada no formato COFF contendo um assembly emitido, opcionalmente incluindo símbolos e especificando a fonte para o contexto de segurança.

Load(Byte[], Byte[], Evidence)
Obsoleto.

Carrega o assembly com uma imagem baseada em formato COFF, contendo um assembly emitido, incluindo, opcionalmente, símbolos e evidência para o assembly.

Load(String, Evidence)
Obsoleto.

Carrega um assembly com o nome de exibição e usando as evidências fornecidas.

Load(AssemblyName, Evidence)
Obsoleto.

Carrega um assembly de acordo com seu AssemblyName. O assembly é carregado usando a evidência fornecida.

Load(Byte[])

Carrega o assembly com uma imagem baseada em formato COFF, contendo um assembly emitido.

Load(String)

Carrega um assembly com o nome especificado.

Load(AssemblyName)

Carrega um assembly de acordo com seu AssemblyName.

Load(Byte[], Byte[])

Carrega o assembly com uma imagem baseada em formato COFF, contendo um assembly emitido e com a opção de incluir símbolos para o assembly.

Load(Byte[], Byte[], SecurityContextSource)

Carrega o assembly com uma imagem baseada no formato COFF contendo um assembly emitido, opcionalmente incluindo símbolos e especificando a fonte para o contexto de segurança.

public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, System.Security.SecurityContextSource securityContextSource);

Parâmetros

rawAssembly
Byte[]

Uma matriz de byte que é uma imagem baseada em COFF contendo um assembly emitido.

rawSymbolStore
Byte[]

Uma matriz de bytes que contém os bytes brutos que representam os símbolos do assembly.

securityContextSource
SecurityContextSource

A origem do contexto de segurança.

Retornos

O assembly carregado.

Exceções

rawAssembly é null.

rawAssembly não é um assembly válido para o runtime carregado no momento.

O valor atribuído de securityContextSource não é um dos valores de enumeração.

Comentários

O assembly é carregado no domínio do aplicativo do chamador usando a origem especificada para o contexto de segurança. Se rawSymbolStore tiver sido especificado, os bytes brutos que representam os símbolos do assembly também serão carregados.

Aplica-se a

.NET Framework 4.8.1 e outras versões
Produto Versões
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

Load(Byte[], Byte[], Evidence)

Cuidado

This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

Carrega o assembly com uma imagem baseada em formato COFF, contendo um assembly emitido, incluindo, opcionalmente, símbolos e evidência para o assembly.

public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, 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 Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, System.Security.Policy.Evidence securityEvidence);

Parâmetros

rawAssembly
Byte[]

Uma matriz de byte que é uma imagem baseada em COFF contendo um assembly emitido.

rawSymbolStore
Byte[]

Uma matriz de bytes que contém os bytes brutos que representam os símbolos do assembly.

securityEvidence
Evidence

Evidência para carregar o assembly.

Retornos

O assembly carregado.

Atributos

Exceções

rawAssembly é null.

rawAssembly não é um assembly válido para o runtime carregado no momento.

Um assembly ou módulo foi carregado duas vezes em com duas evidências diferentes.

securityEvidence não é null. Por padrão, a política cas herdada não está habilitada no .NET Framework 4; quando ele não estiver habilitado, securityEvidence deverá ser null.

Comentários

Essa sobrecarga de método sempre cria um novo Assembly objeto em seu próprio contexto de carga isolado.

O assembly é carregado usando a evidência fornecida. Os bytes brutos que representam os símbolos do assembly também são carregados.

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 Load método sem Evidence parâmetro, o assembly é carregado com a evidência que o carregador fornece.

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

  • Quando você usa uma Load sobrecarga de método com um Byte[] parâmetro para carregar uma imagem COFF, as evidências são herdadas do assembly de chamada.

  • Quando você usa um Load 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.

Se você chamar o Load 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.

Aplica-se a

.NET Framework 4.8.1 e outras versões
Produto Versões (Obsoleto)
.NET Framework 1.1, 2.0, 3.0, 3.5 (4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1)

Load(String, Evidence)

Cuidado

This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

Carrega um assembly com o nome de exibição e usando as evidências fornecidas.

public static System.Reflection.Assembly Load (string assemblyString, System.Security.Policy.Evidence assemblySecurity);
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly Load (string assemblyString, System.Security.Policy.Evidence assemblySecurity);

Parâmetros

assemblyString
String

O nome para exibição do assembly.

assemblySecurity
Evidence

Evidência para carregar o assembly.

Retornos

O assembly carregado.

Atributos

Exceções

assemblyString é null.

assemblyString não foi encontrado.

assemblyString não é um assembly válido para o runtime carregado no momento.

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

- ou -

Um assembly ou módulo foi carregado duas vezes em com duas evidências diferentes.

Comentários

FileLoadException será gerado se assemblyString especificar o nome completo do assembly e o primeiro assembly que corresponde ao nome simples tiver uma versão, cultura ou token de chave pública diferente. O carregador não continua a sondar outros assemblies que correspondam ao nome simples.

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 Load método sem Evidence parâmetro, o assembly é carregado com a evidência que o carregador fornece.

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

  • Quando você usa uma Load sobrecarga de método com um Byte[] parâmetro para carregar uma imagem coff (formato de arquivo de objeto) comum, a evidência é herdada do assembly de chamada.

  • Quando você usa um Load 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.

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.

No .NET Framework versão 2.0, a arquitetura do processador é adicionada à identidade do assembly e pode ser especificada como parte das cadeias de caracteres de nome do assembly. Por exemplo, "ProcessorArchitecture=msil". No entanto, a maneira recomendada de especificar um nome de assembly é criar um AssemblyName objeto e passá-lo para uma sobrecarga apropriada do Load método. Consulte AssemblyName.ProcessorArchitecture.

Confira também

Aplica-se a

.NET Framework 4.8.1 e outras versões
Produto Versões (Obsoleto)
.NET Framework 1.1, 2.0, 3.0, 3.5 (4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1)

Load(AssemblyName, Evidence)

Cuidado

This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

Carrega um assembly de acordo com seu AssemblyName. O assembly é carregado usando a evidência fornecida.

public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef, System.Security.Policy.Evidence assemblySecurity);
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef, System.Security.Policy.Evidence assemblySecurity);

Parâmetros

assemblyRef
AssemblyName

O objeto que descreve o assembly a ser carregado.

assemblySecurity
Evidence

Evidência para carregar o assembly.

Retornos

O assembly carregado.

Atributos

Exceções

assemblyRef é null.

assemblyRef não foi encontrado.

assemblyRef não é um assembly válido para o runtime carregado no momento.

Um assembly ou módulo foi carregado duas vezes em com duas evidências diferentes.

- ou -

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

Comentários

FileLoadException será gerado se assemblyRef especificar o nome completo do assembly e o primeiro assembly que corresponde ao nome simples tiver uma versão, cultura ou token de chave pública diferente. O carregador não continua a sondar outros assemblies que correspondam ao nome simples.

Consulte <loadFromRemoteSources> para carregar assemblies de locais remotos.

Observação

Não use um AssemblyName com apenas o CodeBase conjunto de propriedades. A CodeBase propriedade não fornece nenhum elemento da identidade do assembly (como nome ou versão), portanto, o carregamento não ocorre de acordo com as regras de carregamento por identidade, como você esperaria do Load método. Em vez disso, o assembly é carregado usando regras de carregamento. Para obter informações sobre as desvantagens de usar o contexto load-from, consulte a sobrecarga do Assembly.LoadFrom método ou Práticas Recomendadas para Carregamento de Assembly.

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 Load método sem Evidence parâmetro, o assembly é carregado com a evidência que o carregador fornece.

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

  • Quando você usa uma Load sobrecarga de método com um Byte[] parâmetro para carregar uma imagem coff (formato de arquivo de objeto) comum, a evidência é herdada do assembly de chamada.

  • Quando você usa um Load 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.

Observação

Se a AssemblyName.Name propriedade e a AssemblyName.CodeBase propriedade estiverem definidas, a primeira tentativa de carregar o assembly usará o nome de exibição (incluindo versão, cultura e assim por diante, conforme retornado pela Assembly.FullName propriedade). Se o arquivo não for encontrado, CodeBase será usado para pesquisar o assembly. Se o assembly for encontrado usando CodeBase, o nome de exibição será correspondido com o assembly. Se a correspondência falhar, um FileLoadException será lançado.

Se você chamar o Load 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.

Confira também

Aplica-se a

.NET Framework 4.8.1 e outras versões
Produto Versões (Obsoleto)
.NET Framework 1.1, 2.0, 3.0, 3.5 (4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1)

Load(Byte[])

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

Carrega o assembly com uma imagem baseada em formato COFF, contendo um assembly emitido.

public static System.Reflection.Assembly Load (byte[] rawAssembly);

Parâmetros

rawAssembly
Byte[]

Uma matriz de byte que é uma imagem baseada em COFF contendo um assembly emitido.

Retornos

O assembly carregado.

Exceções

rawAssembly é null.

rawAssembly não é um assembly válido para o runtime carregado no momento.

Comentários

Essa sobrecarga de método sempre cria um novo Assembly objeto em seu próprio contexto de carga isolado.

Somente .NET Framework: O nível de confiança de um assembly carregado usando esse método é o mesmo que o nível de confiança do assembly de chamada. Para carregar um assembly de uma matriz de bytes com o nível de confiança do domínio do aplicativo, use a sobrecarga do Load(Byte[], Byte[], SecurityContextSource) método. Para obter mais informações sobre o uso de evidências com sobrecargas do Load método que usam matrizes de bytes, consulte a sobrecarga do Load(Byte[], Byte[], Evidence) método.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Load(String)

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

Carrega um assembly com o nome especificado.

public static System.Reflection.Assembly Load (string assemblyString);

Parâmetros

assemblyString
String

A forma longa ou abreviada do nome do assembly.

Retornos

O assembly carregado.

Exceções

assemblyString é null.

assemblyString é uma cadeia de comprimento zero.

assemblyString não foi encontrado.

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

assemblyString não é um assembly válido para o runtime carregado no momento.

Exemplos

O exemplo a seguir carrega um assembly com o nome totalmente qualificado e lista todos os tipos contidos no assembly especificado. Para obter informações sobre como obter o nome do assembly totalmente qualificado, consulte Nomes de assembly.

using System;
using System.Reflection;

class Class1
{
    public static void Main()
    {
        // You must supply a valid fully qualified assembly name.
        Assembly SampleAssembly = Assembly.Load
            ("SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3");
        // Display all the types contained in the specified assembly.
        foreach (Type oType in SampleAssembly.GetTypes()) {
            Console.WriteLine(oType.Name);
        }
    }
}

Comentários

Para carregar o assembly correto, é recomendável chamar o Load método passando a forma longa do nome do assembly. A forma longa de um nome de assembly consiste em seu nome simples (como "System" para o assembly System.dll) juntamente com sua versão, cultura, token de chave pública e, opcionalmente, sua arquitetura de processador. Ele corresponde à propriedade do FullName assembly. O exemplo a seguir ilustra o uso de um nome longo para carregar o assembly System.dll para o .NET Framework 4:

using System;
using System.Reflection;

public class Example
{
   public static void Main()
   {
      string longName = "system, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
      Assembly assem = Assembly.Load(longName);
      if (assem == null)
         Console.WriteLine("Unable to load assembly...");
      else
         Console.WriteLine(assem.FullName);
   }
}
// The example displays the following output:
//        system, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

FileLoadException será gerado se assemblyString especificar o nome completo do assembly e o primeiro assembly que corresponde ao nome simples tiver uma versão, cultura ou token de chave pública diferente. O carregador não continua a sondar outros assemblies que correspondam ao nome simples.

No .NET Framework versão 2.0, a arquitetura do processador é adicionada à identidade do assembly e pode ser especificada como parte das cadeias de caracteres de nome do assembly. Por exemplo, "ProcessorArchitecture=msil". No entanto, a maneira recomendada de especificar um nome de assembly é criar um AssemblyName objeto e passá-lo para uma sobrecarga apropriada do Load método. Consulte AssemblyName.ProcessorArchitecture.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Load(AssemblyName)

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

Carrega um assembly de acordo com seu AssemblyName.

public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef);

Parâmetros

assemblyRef
AssemblyName

O objeto que descreve o assembly a ser carregado.

Retornos

O assembly carregado.

Exceções

assemblyRef é null.

assemblyRef não foi encontrado.

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

- ou -

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

Observação: no .NET para aplicativos da Windows Store ou na Biblioteca de Classes Portátil, capture a exceção de classe base, IOException, em vez disso.

assemblyRef não é um assembly válido para o runtime carregado no momento.

Exemplos

O exemplo a seguir cria uma instância de um AssemblyName objeto e o usa para carregar o sysglobal.dll assembly. Em seguida, o exemplo exibe o nome completo dos tipos públicos do assembly.

using System;
using System.Reflection;

public class Example
{
   public static void Main()
   {
      String fullName = "sysglobl, Version=4.0.0.0, Culture=neutral, " +
                        "PublicKeyToken=b03f5f7f11d50a3a, processor architecture=MSIL";
      var an = new AssemblyName(fullName);
      var assem = Assembly.Load(an);
      Console.WriteLine("Public types in assembly {0}:", assem.FullName);
      foreach (var t in assem.GetTypes())
         if (t.IsPublic)
            Console.WriteLine("   {0}", t.FullName);
   }
}
// The example displays the following output:
//   Public types in assembly sysglobl, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a:
//      System.Globalization.CultureAndRegionInfoBuilder
//      System.Globalization.CultureAndRegionModifiers

Comentários

FileLoadException será gerado se assemblyRef especificar o nome completo do assembly e o primeiro assembly que corresponde ao nome simples tiver uma versão, cultura ou token de chave pública diferente. O carregador não continua a sondar outros assemblies que correspondam ao nome simples.

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

Observação

Somente .NET Framework: Não use um AssemblyName com apenas o CodeBase conjunto de propriedades. A CodeBase propriedade não fornece nenhum elemento da identidade do assembly (como nome ou versão), portanto, o carregamento não ocorre de acordo com as regras de carregamento por identidade, como você esperaria do Load método. Em vez disso, o assembly é carregado usando regras de carregamento. Para obter informações sobre as desvantagens de usar o contexto load-from, consulte a sobrecarga do Assembly.LoadFrom método ou Práticas Recomendadas para Carregamento de Assembly.

Observação

Somente .NET Framework: Se a AssemblyName.Name propriedade e a AssemblyName.CodeBase propriedade estiverem definidas, a primeira tentativa de carregar o assembly usará o nome de exibição (incluindo versão, cultura e assim por diante, conforme retornado pela Assembly.FullName propriedade). Se o arquivo não for encontrado, CodeBase será usado para pesquisar o assembly. Se o assembly for encontrado usando CodeBase, o nome de exibição será correspondido com o assembly. Se a correspondência falhar, um FileLoadException será lançado.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Load(Byte[], Byte[])

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

Carrega o assembly com uma imagem baseada em formato COFF, contendo um assembly emitido e com a opção de incluir símbolos para o assembly.

public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[]? rawSymbolStore);
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore);

Parâmetros

rawAssembly
Byte[]

Uma matriz de byte que é uma imagem baseada em COFF contendo um assembly emitido.

rawSymbolStore
Byte[]

Uma matriz de bytes que contém os bytes brutos que representam os símbolos do assembly.

Retornos

O assembly carregado.

Exceções

rawAssembly é null.

rawAssembly não é um assembly válido para o runtime carregado no momento.

Comentários

Essa sobrecarga de método sempre cria um novo Assembly objeto em seu próprio contexto de carga isolado.

Somente .NET Framework: O nível de confiança de um assembly carregado usando esse método é o mesmo que o nível de confiança do assembly de chamada. Para carregar um assembly de uma matriz de bytes com o nível de confiança do domínio do aplicativo, use a sobrecarga do Load(Byte[], Byte[], SecurityContextSource) método. Para obter mais informações sobre o uso de evidências com sobrecargas do Load método que usam matrizes de bytes, consulte a sobrecarga do Load(Byte[], Byte[], Evidence) método.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1