Assembly Classe

Definição

Representa um assembly, que é um bloco de construção reutilizável, versável e auto-descritivo de uma aplicação de runtime em linguagem comum.

public ref class Assembly abstract
public ref class Assembly : System::Reflection::ICustomAttributeProvider, System::Runtime::InteropServices::_Assembly, System::Runtime::Serialization::ISerializable, System::Security::IEvidenceFactory
public ref class Assembly abstract : System::Reflection::ICustomAttributeProvider, System::Runtime::InteropServices::_Assembly, System::Runtime::Serialization::ISerializable, System::Security::IEvidenceFactory
public ref class Assembly abstract : System::Reflection::ICustomAttributeProvider
public ref class Assembly abstract : System::Reflection::ICustomAttributeProvider, System::Runtime::Serialization::ISerializable
public abstract class Assembly
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
public class Assembly : System.Reflection.ICustomAttributeProvider, System.Runtime.InteropServices._Assembly, System.Runtime.Serialization.ISerializable, System.Security.IEvidenceFactory
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class Assembly : System.Reflection.ICustomAttributeProvider, System.Runtime.InteropServices._Assembly, System.Runtime.Serialization.ISerializable, System.Security.IEvidenceFactory
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class Assembly : System.Reflection.ICustomAttributeProvider, System.Runtime.InteropServices._Assembly, System.Runtime.Serialization.ISerializable, System.Security.IEvidenceFactory
public abstract class Assembly : System.Reflection.ICustomAttributeProvider
public abstract class Assembly : System.Reflection.ICustomAttributeProvider, System.Runtime.Serialization.ISerializable
type Assembly = class
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Serializable>]
type Assembly = class
    interface _Assembly
    interface IEvidenceFactory
    interface ICustomAttributeProvider
    interface ISerializable
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Assembly = class
    interface _Assembly
    interface IEvidenceFactory
    interface ICustomAttributeProvider
    interface ISerializable
type Assembly = class
    interface ICustomAttributeProvider
type Assembly = class
    interface ICustomAttributeProvider
    interface ISerializable
Public MustInherit Class Assembly
Public Class Assembly
Implements _Assembly, ICustomAttributeProvider, IEvidenceFactory, ISerializable
Public MustInherit Class Assembly
Implements _Assembly, ICustomAttributeProvider, IEvidenceFactory, ISerializable
Public MustInherit Class Assembly
Implements ICustomAttributeProvider
Public MustInherit Class Assembly
Implements ICustomAttributeProvider, ISerializable
Herança
Assembly
Derivado
Atributos
Implementações

Exemplos

O exemplo de código seguinte mostra como obter o assembly em execução atual, criar uma instância de um tipo contido nesse assembly e invocar um dos métodos do tipo com late binding. Para este efeito, o exemplo de código define uma classe chamada Example, com um método chamado SampleMethod. O construtor da classe aceita um inteiro, que é usado para calcular o valor de retorno do método.

O exemplo do código também demonstra a utilização do GetName método para obter um AssemblyName objeto que pode ser usado para analisar o nome completo da assembleia. O exemplo mostra o número de versão da assembleia, a CodeBase propriedade e a EntryPoint propriedade.

using System;
using System.Reflection;
using System.Security.Permissions;

[assembly:AssemblyVersionAttribute("1.0.2000.0")]

public class Example
{
    private int factor;
    public Example(int f)
    {
        factor = f;
    }

    public int SampleMethod(int x)
    {
        Console.WriteLine("\nExample.SampleMethod({0}) executes.", x);
        return x * factor;
    }

    public static void Main()
    {
        Assembly assem = typeof(Example).Assembly;

        Console.WriteLine("Assembly Full Name:");
        Console.WriteLine(assem.FullName);

        // The AssemblyName type can be used to parse the full name.
        AssemblyName assemName = assem.GetName();
        Console.WriteLine("\nName: {0}", assemName.Name);
        Console.WriteLine("Version: {0}.{1}",
            assemName.Version.Major, assemName.Version.Minor);

        Console.WriteLine("\nAssembly CodeBase:");
        Console.WriteLine(assem.CodeBase);

        // Create an object from the assembly, passing in the correct number
        // and type of arguments for the constructor.
        Object o = assem.CreateInstance("Example", false,
            BindingFlags.ExactBinding,
            null, new Object[] { 2 }, null, null);

        // Make a late-bound call to an instance method of the object.
        MethodInfo m = assem.GetType("Example").GetMethod("SampleMethod");
        Object ret = m.Invoke(o, new Object[] { 42 });
        Console.WriteLine("SampleMethod returned {0}.", ret);

        Console.WriteLine("\nAssembly entry point:");
        Console.WriteLine(assem.EntryPoint);
    }
}

/* This code example produces output similar to the following:

Assembly Full Name:
source, Version=1.0.2000.0, Culture=neutral, PublicKeyToken=null

Name: source
Version: 1.0

Assembly CodeBase:
file:///C:/sdtree/AssemblyClass/cs/source.exe

Example.SampleMethod(42) executes.
SampleMethod returned 84.

Assembly entry point:
Void Main()
 */
Imports System.Reflection
Imports System.Security.Permissions

<assembly: AssemblyVersionAttribute("1.0.2000.0")>

Public Class Example
    Private factor As Integer
    
    Public Sub New(ByVal f As Integer) 
        factor = f
    End Sub 
    
    Public Function SampleMethod(ByVal x As Integer) As Integer 
        Console.WriteLine(vbCrLf & "Example.SampleMethod({0}) executes.", x)
        Return x * factor
    End Function 
    
    Public Shared Sub Main() 
        Dim assem As Assembly = GetType(Example).Assembly
        
        Console.WriteLine("Assembly Full Name:")
        Console.WriteLine(assem.FullName)
        
        ' The AssemblyName type can be used to parse the full name.
        Dim assemName As AssemblyName = assem.GetName()
        Console.WriteLine(vbLf + "Name: {0}", assemName.Name)
        Console.WriteLine("Version: {0}.{1}", assemName.Version.Major, _
            assemName.Version.Minor)
        
        Console.WriteLine(vbLf + "Assembly CodeBase:")
        Console.WriteLine(assem.CodeBase)
        
        ' Create an object from the assembly, passing in the correct number
        ' and type of arguments for the constructor.
        Dim o As Object = assem.CreateInstance("Example", False, _
            BindingFlags.ExactBinding, Nothing, _
            New Object() { 2 }, Nothing, Nothing)
        
        ' Make a late-bound call to an instance method of the object.    
        Dim m As MethodInfo = assem.GetType("Example").GetMethod("SampleMethod")
        Dim ret As Object = m.Invoke(o, New Object() { 42 })
        Console.WriteLine("SampleMethod returned {0}.", ret)
        
        Console.WriteLine(vbCrLf & "Assembly entry point:")
        Console.WriteLine(assem.EntryPoint)
    
    End Sub 
End Class 

' This code example produces output similar to the following:
'
'Assembly Full Name:
'source, Version=1.0.2000.0, Culture=neutral, PublicKeyToken=null
'
'Name: source
'Version: 1.0
'
'Assembly CodeBase:
'file:///C:/sdtree/AssemblyClass/vb/source.exe
'
'Example.SampleMethod(42) executes.
'SampleMethod returned 84.
'
'Assembly entry point:
'Void Main()
'

Observações

Use a Assembly classe para carregar assemblies, explorar os metadados e as partes constituintes dos assemblies, descobrir os tipos contidos nas assemblies e criar instâncias desses tipos.

Para obter um array de Assembly objetos que representam os assemblies atualmente carregados num domínio de aplicação (por exemplo, o domínio de aplicação padrão de um projeto simples), use o AppDomain.GetAssemblies método.

Para carregar assemblies dinamicamente, a classe Assembly fornece os seguintes métodos estáticos (Shared métodos em Visual Basic). Os assemblies são carregados no domínio da aplicação onde ocorre a operação de carga.

  • A forma recomendada de carregar assemblies é usar o método Load, que identifica o assembly a ser carregado pelo seu nome de exibição (por exemplo, "System.Windows. Forms, Version=2.0.0.0, Culture=neutro, PublicKeyToken=b77a5c561934e089"). A pesquisa pelo assembly segue as regras descritas em Como o Runtime Localiza Assemblies.

  • Os ReflectionOnlyLoad métodos and ReflectionOnlyLoadFrom permitem-lhe carregar um assembly para reflexão, mas não para execução. Por exemplo, um assembly que tem como alvo uma plataforma de 64 bits pode ser examinado por código que está a correr numa plataforma de 32 bits.

  • Os LoadFile métodos e LoadFrom são fornecidos para cenários raros em que uma montagem deve ser identificada por caminho.

Para obter um Assembly objeto para a montagem em execução, use o GetExecutingAssembly método.

Muitos membros da Assembly turma fornecem informações sobre uma assembleia. Por exemplo:

  • O GetName método devolve um AssemblyName objeto que fornece acesso às partes do nome de exibição da montagem.

  • O GetCustomAttributes método lista os atributos aplicados à montagem.

  • O GetFiles método fornece acesso aos ficheiros no manifesto assembly.

  • O GetManifestResourceNames método fornece os nomes dos recursos no manifesto de assembleia.

O GetTypes método lista todos os tipos na montagem. O GetExportedTypes método lista os tipos que são visíveis para os chamadores fora da assembleia. O GetType método pode ser usado para procurar um tipo específico no conjunto. O CreateInstance método pode ser usado para procurar e criar instâncias de tipos na montagem.

Para mais informações sobre assemblies, consulte a secção "Domínios de Aplicação e Assemblies" no tópico Domínios de Aplicação .

Construtores

Name Description
Assembly()

Inicializa uma nova instância da Assembly classe.

Propriedades

Name Description
CodeBase

Obtém a localização da montagem conforme especificada originalmente, por exemplo, num AssemblyName objeto.

CustomAttributes

Obtém uma coleção que contém os atributos personalizados desta assembleia.

DefinedTypes

Obtém uma coleção dos tipos definidos nesta assembleia.

EntryPoint

Fica com o ponto de entrada desta assembleia.

EscapedCodeBase

Obtém o URI, incluindo caracteres de escape, que representa a base de código.

Evidence

Obtém as provas para esta assembleia.

ExportedTypes

Obtém uma coleção dos tipos públicos definidos nesta assembleia que são visíveis fora da assembleia.

FullName

Recebe o nome de exibição da assembleia.

GlobalAssemblyCache

Recebe um valor que indica se o assembly foi carregado a partir da cache global de assembly (apenas .NET Framework).

HostContext

Obtém o contexto do host com o qual o assembly foi carregado.

ImageRuntimeVersion

Obtém uma string que representa a versão do tempo de execução da common language (CLR) guardada no ficheiro que contém o manifesto.

IsDynamic

Obtém um valor que indica se o conjunto atual foi gerado dinamicamente no processo atual usando emissão por reflexão.

IsFullyTrusted

Obtém um valor que indica se o assembly atual está carregado com total confiança.

Location

Obtém o caminho completo ou a localização UNC do ficheiro carregado que contém o manifesto.

ManifestModule

Obtém o módulo que contém o manifesto para a montagem atual.

Modules

Obtém uma coleção que contém os módulos deste assembly.

PermissionSet

Recebe o conjunto de subsídios da assembleia atual.

ReflectionOnly

Recebe um Boolean valor que indica se este assembly foi carregado no contexto apenas de reflexão.

SecurityRuleSet

Obtém um valor que indica qual conjunto de regras de segurança o tempo de execução da linguagem comum (CLR) aplica para este assembly.

Métodos

Name Description
CreateInstance(String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Localiza o tipo especificado a partir deste assembly e cria uma instância dele usando o ativador do sistema, com pesquisa opcional a maiúsculas e minúsculas e com os atributos de cultura, argumentos, ligação e ativação especificados.

CreateInstance(String, Boolean)

Localiza o tipo especificado a partir deste conjunto e cria uma instância dele usando o ativador do sistema, com pesquisa opcional a maiúsculas e minúsculas.

CreateInstance(String)

Localiza o tipo especificado a partir deste conjunto e cria uma instância dele usando o ativador do sistema, usando pesquisa sensível a maiúsculas minúsculas.

CreateQualifiedName(String, String)

Cria o nome de um tipo qualificado pelo nome de exibição do seu conjunto.

Equals(Object)

Determina se esta montagem e o objeto especificado são iguais.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetAssembly(Type)

Obtém o conjunto atualmente carregado onde o tipo especificado está definido.

GetCallingAssembly()

Devolve o Assembly do método que invocou o método atualmente em execução.

GetCustomAttributes(Boolean)

Obtém todos os atributos personalizados para esta montagem.

GetCustomAttributes(Type, Boolean)

Obtém os atributos personalizados para esta montagem conforme especificado por tipo.

GetCustomAttributesData()

Devolve informação sobre os atributos que foram aplicados à corrente Assembly, expressa como CustomAttributeData objetos.

GetEntryAssembly()

Obtém o conjunto de entrada para a aplicação em execução.

GetExecutingAssembly()

Obtém o assembly que contém o código que está a ser executado.

GetExportedTypes()

Obtém os tipos públicos definidos nesta assembleia que são visíveis fora da assembleia.

GetFile(String)

Obtém a FileStream para o ficheiro especificado na tabela de ficheiros do manifesto deste assembly.

GetFiles()

Obtém os ficheiros na tabela de ficheiros de um manifesto assembly.

GetFiles(Boolean)

Obtém os ficheiros na tabela de ficheiros de um manifesto assembly, especificando se deve incluir módulos de recursos.

GetForwardedTypes()

Representa um assembly, que é um bloco de construção reutilizável, versável e auto-descritivo de uma aplicação de runtime em linguagem comum.

GetHashCode()

Devolve o código de hash para esta instância.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetLoadedModules()

Recebe todos os módulos carregados que fazem parte deste conjunto.

GetLoadedModules(Boolean)

Obtém todos os módulos carregados que fazem parte deste assembly, especificando se deve incluir módulos de recurso.

GetManifestResourceInfo(String)

Devolve informações sobre como o recurso fornecido foi mantido.

GetManifestResourceNames()

Retorna os nomes de todos os recursos nesta assembleia.

GetManifestResourceStream(String)

Carrega o recurso manifesto especificado a partir desta assembleia.

GetManifestResourceStream(Type, String)

Carrega o recurso manifesto especificado, escopado pelo namespace do tipo especificado, a partir desta assembleia.

GetModule(String)

Obtém o módulo especificado neste conjunto.

GetModules()

Recebe todos os módulos que fazem parte deste conjunto.

GetModules(Boolean)

Obtém todos os módulos que fazem parte desta assembleia, especificando se deve incluir módulos de recurso.

GetName()

Recebe um AssemblyName para esta assembleia.

GetName(Boolean)

Obtém um AssemblyName para esta assembleia, definindo a base de código conforme especificado por copiedName.

GetObjectData(SerializationInfo, StreamingContext)

Obtém informação de serialização com todos os dados necessários para reinstanciar este assembly.

GetReferencedAssemblies()

Obtém os AssemblyName objetos de todos os assemblies referenciados por este assembly.

GetSatelliteAssembly(CultureInfo, Version)

Obtém a versão especificada do conjunto do satélite para a cultura especificada.

GetSatelliteAssembly(CultureInfo)

Obtém a montagem do satélite para a cultura especificada.

GetType()

Representa um assembly, que é um bloco de construção reutilizável, versável e auto-descritivo de uma aplicação de runtime em linguagem comum.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetType(String, Boolean, Boolean)

Obtém o Type objeto com o nome especificado na instância de assembly, com as opções de ignorar o caso e lançar uma exceção se o tipo não for encontrado.

GetType(String, Boolean)

Recebe o Type objeto com o nome especificado na instância de montagem e, opcionalmente, lança uma exceção se o tipo não for encontrado.

GetType(String)

Obtém o Type objeto com o nome especificado na instância assembly.

GetTypes()

Define todos os tipos nesta assembleia.

IsDefined(Type, Boolean)

Indica se um atributo especificado foi ou não aplicado à assembleia.

Load(AssemblyName, Evidence)
Obsoleto.

Carrega um assembly dado o seu AssemblyName. O conjunto é carregado usando as provas fornecidas.

Load(AssemblyName)

Carrega um assembly dado o seu AssemblyName.

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

Carrega a montagem com uma imagem baseada em formato de ficheiro de objeto comum (COFF) contendo uma montagem emitida, incluindo opcionalmente símbolos e evidências da montagem.

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

Carrega o conjunto com uma imagem baseada em formato de ficheiro de objeto comum (COFF) contendo um conjunto emitido, opcionalmente incluindo símbolos e especificando a fonte para o contexto de segurança.

Load(Byte[], Byte[])

Carrega o conjunto com uma imagem baseada em formato de ficheiro de objeto comum (COFF) contendo um conjunto emitido, incluindo opcionalmente símbolos para o conjunto.

Load(Byte[])

Carrega o conjunto com uma imagem baseada em formato de ficheiro objeto comum (COFF) contendo um conjunto emitido.

Load(String, Evidence)
Obsoleto.

Carrega um conjunto com o seu nome de exibição e usando as provas fornecidas.

Load(String)

Carrega um assembly com o nome especificado.

LoadFile(String, Evidence)
Obsoleto.

Carrega um conjunto dado o seu caminho, carregando o conjunto usando a evidência fornecida.

LoadFile(String)

Carrega o conteúdo de um ficheiro assembly no caminho especificado.

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

Carrega uma assembly com o nome do ficheiro ou caminho, valor de hash e algoritmo de hash.

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

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

LoadFrom(String, Evidence)
Obsoleto.

Carrega um assembly com o nome ou caminho do ficheiro e fornecendo provas de segurança.

LoadFrom(String)

Carrega uma assembly com o nome ou caminho do ficheiro.

LoadModule(String, Byte[], Byte[])

Carrega o módulo, interno a este conjunto, com uma imagem baseada em formato de ficheiro de objeto comum (COFF) contendo um módulo emitido, ou um ficheiro de recurso. Os bytes brutos que representam os símbolos do módulo também são carregados.

LoadModule(String, Byte[])

Carrega o módulo, interno a este conjunto, com uma imagem baseada em formato de ficheiro de objeto comum (COFF) contendo um módulo emitido, ou um ficheiro de recurso.

LoadWithPartialName(String, Evidence)
Obsoleto.

Carrega um assembly a partir do diretório da aplicação ou do cache global de assembly usando um nome parcial. O conjunto é carregado usando as provas fornecidas.

LoadWithPartialName(String)
Obsoleto.
Obsoleto.

Carrega um assembly a partir do diretório da aplicação ou do cache global de assembly usando um nome parcial.

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ReflectionOnlyLoad(Byte[])

Carrega a montagem a partir de uma imagem baseada em formato comum de ficheiro objeto (COFF) contendo uma montagem emitida. O assembly é carregado no contexto apenas de reflexão do domínio de aplicação do chamador.

ReflectionOnlyLoad(String)

Carrega um assembly no contexto apenas de reflexão, dado o seu nome de visualização.

ReflectionOnlyLoadFrom(String)

Carrega um assembly no contexto apenas de reflexão, dado o seu caminho.

ToString()

Devolve o nome completo da assembleia, também conhecido como nome de visualização.

UnsafeLoadFrom(String)

Carrega um assembly no contexto load-from, contornando algumas verificações de segurança.

Operadores

Name Description
Equality(Assembly, Assembly)

Indica se dois Assembly objetos são iguais.

Inequality(Assembly, Assembly)

Indica se dois Assembly objetos não são iguais.

evento

Name Description
ModuleResolve

Ocorre quando o carregador de classes em tempo de execução da linguagem comum não consegue resolver uma referência a um módulo interno de um assembly por meios normais.

Implementações de Interface Explícita

Name Description
_Assembly.GetType()

Devolve o tipo da instância atual.

ICustomAttributeProvider.GetCustomAttributes(Boolean)

Devolve um array de todos os atributos personalizados definidos neste membro, excluindo atributos nomeados, ou um array vazio se não existirem atributos personalizados.

ICustomAttributeProvider.GetCustomAttributes(Type, Boolean)

Devolve um array de atributos personalizados definidos neste membro, identificados pelo tipo, ou um array vazio se não existirem atributos personalizados desse tipo.

ICustomAttributeProvider.IsDefined(Type, Boolean)

Indica se uma ou mais instâncias de attributeType estão definidas neste membro.

Métodos da Extensão

Name Description
GetCustomAttribute(Assembly, Type)

Recupera um atributo personalizado de um tipo especificado que é aplicado a um conjunto especificado.

GetCustomAttribute<T>(Assembly)

Recupera um atributo personalizado de um tipo especificado que é aplicado a um conjunto especificado.

GetCustomAttributes(Assembly, Type)

Recupera uma coleção de atributos personalizados de um tipo especificado que são aplicados a uma montagem específica.

GetCustomAttributes(Assembly)

Recupera uma coleção de atributos personalizados que são aplicados a um assembly especificado.

GetCustomAttributes<T>(Assembly)

Recupera uma coleção de atributos personalizados de um tipo especificado que são aplicados a uma montagem específica.

GetExportedTypes(Assembly)

Representa um assembly, que é um bloco de construção reutilizável, versável e auto-descritivo de uma aplicação de runtime em linguagem comum.

GetModules(Assembly)

Representa um assembly, que é um bloco de construção reutilizável, versável e auto-descritivo de uma aplicação de runtime em linguagem comum.

GetTypes(Assembly)

Representa um assembly, que é um bloco de construção reutilizável, versável e auto-descritivo de uma aplicação de runtime em linguagem comum.

IsDefined(Assembly, Type)

Indica se atributos personalizados de um tipo especificado são aplicados a um conjunto especificado.

Aplica-se a

Segurança de Thread

Este tipo é seguro para fios.

Ver também