Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you explain type forwarding in simple terms?

Tags:

c#

.net

I am preparing for MCTS 70-536, after reading this article. I am not 100% sure I understand the concept of typeforwarding. I find the steps given in the article even more confusing. Whats the deal if I am copying the sourcecode of type to be forwarded and recompiling it. What happens with old dll and the client ??

like image 283
Perpetualcoder Avatar asked Nov 21 '25 00:11

Perpetualcoder


1 Answers

Type forwarding allows you to relocate a type between assemblies. So originally it is TypeA in AssemblyA. By applying type-forwarding, you can end with TypeA in AssemblyB.

The subtlety is the code that is already compiled doesn't see the change - they ask for the type in AssemblyA, and the runtime silently gives them the type from AssemblyB. This is very important if you have existing code.

However; new code cannot be recompiled referencing TypeA without you referencing AssemblyB.

So:

  • old clients don't need to be recompiled
  • however, you do need to rebuild both AssemblyA and AssemblyB in the above example
  • new code (or any recompiled code) must now reference AssemblyB (the new one)
like image 171
Marc Gravell Avatar answered Nov 22 '25 14:11

Marc Gravell