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