Visão Geral Sobre Metadados

Metadados são informações binárias que descrevem o seu programa, o qual é fornecido em um arquivo PE do Common Language Runtime ou na memória.Quando você compila seu código em um arquivo PE, os metadados são inseridos em uma parte do arquivo, enquanto o código é convertido para a Microsoft Intermediate Language (MSIL) e inserido em outra parte do arquivo.Cada tipo e membro definido e referenciado em um módulo ou assembly é descrito em metadados.Quando o código é executado, o Runtime carrega os metadados na memória e os referencia para descobrir informações sobre suas classes de código, membros, herança e assim por diante.

Os metadados descrevem cada tipo e membro definido no seu código de uma maneira neutra de linguagem.Os metadados armazenam as seguintes informações:

  • Descrição do Assembly.

    • Identidade (nome, versão, cultura, chave pública).

    • Os tipos que são exportados.

    • Outros conjuntos de que este assembly depende.

    • Permissões de segurança necessárias para executar.

  • Descrição dos tipos.

    • Nome, visibilidade, classe base e interfaces implementadas.

    • Membros (métodos, campos, propriedades, eventos, tipos aninhados).

  • Atributos.

    • Elementos descritivos adicionais que modificam tipos e membros.

Benefícios de Metadados

Os metadados são a chave para um modelo de programação simples, eliminando a necessidade de arquivos de Interface Definition Language (IDL), arquivos de cabeçalho ou qualquer método externo de referência a componente.Os metadados permitem que linguagens .NET se descrevam automaticamente de uma maneira neutra com relação a linguagem, sem que o desenvolvedor e o usuário vejam.Além disso, metadados são extensíveis pelo uso de atributos.Os metadados oferecem os seguintes benefícios principais:

  • Arquivos autodescritivos.

    Módulos Common Language Runtime e assemblies são autodescritivos.Os metadados de um módulo contêm tudo o que ele precisa para interagir com outro módulo.Os metadados fornecem automaticamente a funcionalidade de IDL no COM, permitindo que você use um arquivo para definição e implementação.Módulos Runtime e assemblies não exigem registro com o sistema operacional.Como resultado, as descrições usadas pelo Runtime sempre refletem o código real no arquivo compilado, o que aumenta a confiabilidade do aplicativo.

  • Interoperabilidade de linguagem e facilidade de design baseado em componentes.

    Os metadados fornecem todas as informações necessárias sobre código compilado, para você herdar uma classe de um arquivo de escrita PE em uma linguagem diferente.Você pode criar uma instância de qualquer classe escrita em qualquer linguagem gerenciada (qualquer linguagem que atinge o Common Language Runtime), sem se preocupar com o empacotamento explícito ou com o uso de código de interoperabilidade personalizados.

  • Atributos.

    O .NET Framework permite que você declare tipos específicos de metadados, chamados atributos, no seu arquivo compilado.Os atributos podem ser encontradas em toda a .NET Framework, e são usados para controlar mais detalhadamente como o seu programa se comporta em tempo de execução.Além disso, você pode emitir seus próprios metadados personalizados em arquivos do .NET Framework, através de atributos definidos pelo usuário.Para mais informações, consulte Estendendo Metadados Usando Atributos.

Consulte também

Outros recursos

Metadados e Componentes Autodescritivas

Estendendo metadados usando atributos