none
TypeForwardedTo RRS feed

Respostas

  • Olá Ricardo,

    Isso acontece porque o Visual Studio percebe que você poderia referenciar diretamente o assembly quando tenta compilar a solução e quer que você - já que está compilando uma nova versão - corrija isso (afinal o TypeForwardedTo existe apenas para não quebrar o funcionamento de assemblies que já existem durante o deploy).

    Para testar o funcionamento do TypeForwardedTo, experimente:

    - Remover os comentários da classe "Dog" que está dentro do projecto "Animal" e comentar o "TypeForwardedTo" no AssemblyInfo

    - Recompile toda a solução, execute o Consumer 1, e repare que a classe utilizada é a classe do assembly "Animal"

    - Agora apague (ou comente) a classe "Dog" do projeto "Animal", coloque o "TypeForwardedTo" de volta como estava, e compile apenas o projeto Animal (botão direito no projeto Animal => Rebuild).

    - E agora sim, sem tentar recompilar o Consumer1, vá no Windows Explorer e execute o Consumer1.exe e repare que, como o Animal.dll faz o TypeForwardedTo, ele automaticamente usa a classe "Dog" do assembly "Canine" - que é o objetivo desse exercicio.


    Abraços,
    Caio Proiete

     


    Caio Proiete
    Microsoft MVP, MCT, MCPD, MCTS, MCSD
    http://caioproiete.net
    • Marcado como Resposta ricardo_david terça-feira, 31 de julho de 2012 13:31
    domingo, 29 de julho de 2012 11:06
    Moderador

Todas as Respostas

  • Clique em cada projeto com o botão direito do mouse e clique e Rebuild.

    No projeto Consumer1, dentro da pasta Reference, delete o projeto Animal. 
    Clique com o botão direito na pasta Reference e clique em Add Reference, e coloque novamente o projeto Animal.

    No projeto Animal, tire o comentário da classe Dog


    Se a sugestão resolver o problema, favor marcar como Resposta.




    • Editado Lucas_Santos quinta-feira, 26 de julho de 2012 16:24
    quinta-feira, 26 de julho de 2012 16:10
  • Refiz as referencias porem não funciono.

    Funcionou com vc?

    quinta-feira, 26 de julho de 2012 16:48
  • Funcionou. 

    Qual erro você encontra? 


    Se a sugestão resolver o problema, favor marcar como Resposta.

    quinta-feira, 26 de julho de 2012 16:52
  • no Consumer 1, da o seguinte erro:

    Error 1 The type name 'Dog' could not be found. This type has been forwarded to assembly 'Canine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Consider adding a reference to that assembly. C:\Documents and Settings\rdavid\Desktop\Teste\TypeForwardedToSample\Consumer1\Program.cs 32 13 Consumer1

    quinta-feira, 26 de julho de 2012 19:35
  • É porque esse Dog está comentado. 

    No projeto Animal, vá na classe Dog, e tire os comentários. 


    Se a sugestão resolver o problema, favor marcar como Resposta.

    quinta-feira, 26 de julho de 2012 19:43
  • Se eu descementar a classe Dog em Animal, não tem pq usar TypeforwardedTo.

    O objetivo é simular a remoção da classe Dog para um outro Assembly, neste caso, o projeto Canino.


    quinta-feira, 26 de julho de 2012 20:15
  • Nesse caso, não deveria existir na pasta Reference, uma referência para o projeto Canino ?

    Se a sugestão resolver o problema, favor marcar como Resposta.

    quinta-feira, 26 de julho de 2012 20:23
  • Em qual projeto? Animal ou Consumer1?
    quinta-feira, 26 de julho de 2012 20:49
  • Consumer1

    Se a sugestão resolver o problema, favor marcar como Resposta.

    quinta-feira, 26 de julho de 2012 20:50
  • Isso quebra a ideia do TypeforwardedTo.

    TypeforwardedTo é justamento para que o consumer1 entenda que a classe Animal.Dog foi movida para um outro assembly(Canino.Dog).

    Em um contexto em que você tenha vários sistemas fazendo referencia a classe Animal.Dog e migre e a classe para Canino.Dog. o TypeforwardedTo evita que tenha que recompilar todos eles.

    Entendeu?!

    quinta-feira, 26 de julho de 2012 21:13
  • Olá Ricardo,

    Isso acontece porque o Visual Studio percebe que você poderia referenciar diretamente o assembly quando tenta compilar a solução e quer que você - já que está compilando uma nova versão - corrija isso (afinal o TypeForwardedTo existe apenas para não quebrar o funcionamento de assemblies que já existem durante o deploy).

    Para testar o funcionamento do TypeForwardedTo, experimente:

    - Remover os comentários da classe "Dog" que está dentro do projecto "Animal" e comentar o "TypeForwardedTo" no AssemblyInfo

    - Recompile toda a solução, execute o Consumer 1, e repare que a classe utilizada é a classe do assembly "Animal"

    - Agora apague (ou comente) a classe "Dog" do projeto "Animal", coloque o "TypeForwardedTo" de volta como estava, e compile apenas o projeto Animal (botão direito no projeto Animal => Rebuild).

    - E agora sim, sem tentar recompilar o Consumer1, vá no Windows Explorer e execute o Consumer1.exe e repare que, como o Animal.dll faz o TypeForwardedTo, ele automaticamente usa a classe "Dog" do assembly "Canine" - que é o objetivo desse exercicio.


    Abraços,
    Caio Proiete

     


    Caio Proiete
    Microsoft MVP, MCT, MCPD, MCTS, MCSD
    http://caioproiete.net
    • Marcado como Resposta ricardo_david terça-feira, 31 de julho de 2012 13:31
    domingo, 29 de julho de 2012 11:06
    Moderador