Compartilhar via


Transferência de Tipo no Common Language Runtime

Transferência de tipo permite que você mova um tipo para outro conjunto de módulos (assembly) sem ter que recompilar os aplicativos que usam o conjunto original.

Por exemplo, suponha que um aplicativo usa a classe Example em um conjunto de módulos (assembly) denominado Utility.dll.Os desenvolvedores de Utility.dll podem decidir refatorar o módulo (assembly), e durante o processo eles podem mover a classe Example para outro conjunto.Se a versão antiga do Utility.dll é substituída pela nova versão do Utility.dll e seu conjunto complementar, o aplicativo que usa a classe Example falha porque não é possível localizar a classe Example na nova versão do Utility.dll.

Os desenvolvedores de Utility.dll podem evitar que isso aconteça ao encaminhar solicitações para a classe Example, usando o atributo TypeForwardedToAttribute.Se o atributo foi aplicado à nova versão do Utility.dll, as solicitações para a classe Example são encaminhadas ao conjunto que agora contém a classe.O aplicativo continua a funcionar normalmente, sem recompilação.

Observação:

Na versão 2.0 do .NET Framework, você não pode encaminhar os tipos de conjuntos escritos em Visual Basic.No entanto, um aplicativo escrito em Visual Basic pode consumir tipos encaminhados.Isto é, se o aplicativo usa um conjunto de módulos (assembly) codificado em C# ou C++, e um tipo a partir desse conjunto é encaminhado para outro conjunto, o aplicativo do Visual Basic pode usar o tipo encaminhado.

Encaminhando tipos

Há quatro etapas para encaminhar um tipo:

  1. Mova o código-fonte do tipo do conjunto original para o conjunto de destino.

  2. No conjunto de módulos onde o tipo usado para ser localizado, adicione um TypeForwardedToAttribute para o tipo que foi movido.O código a seguir mostra o atributo para um tipo chamado Example que foi movido.

    [assembly:TypeForwardedToAttribute(typeof(Example))]
    
    [assembly:TypeForwardedToAttribute(Example::typeid)]
    
  3. Compile o assembly que agora contém o tipo.

  4. Recompile o assembly onde o tipo costumava ser localizado, com uma referência para o assembly que agora contém o tipo.Por exemplo, se você estiver compilando um arquivo a partir de linha de comando C#, use a opção /Referência (importar metadados) (opções do compilador de C#) para especificar o conjunto que contém o tipo.Em C++, use a diretiva #using no arquivo de origem para especificar o conjunto que contém o tipo.

Consulte também

Referência

TypeForwardedToAttribute

Forwarding tipo

The # Using Directive