所謂類型轉(zhuǎn)移(Type Forwarding)就是將定義在某個程序集中的類型轉(zhuǎn)移到另一個程序集中。我們先通過一個簡單的實例讓讀者朋友們對類型轉(zhuǎn)移有一個感官上的認識。我們利用Visual Studio創(chuàng)建一個針對.NET Framework 3.5的控制臺應(yīng)用,并編寫如下一端簡單的程序輸出兩個常用的類型(Function<T>和TimeZoneInfo)所在程序集的名稱?,F(xiàn)在我們直接運行這個程序,會在控制臺上得到如下所示的輸出結(jié)果,可以看出.NET Framework 3.5(CLR 2.0)環(huán)境下的這兩個類型定義在程序集System.Core.dll中。

 1: public class Program
 2: {
 3: static void Main(string[] args)
 4: {
 5: Console.WriteLine(typeof(Func<>).Assembly.FullName);
 6: Console.WriteLine(typeof(TimeZoneInfo).Assembly.FullName);
 7: }
 8: }

輸出結(jié)果:

image

現(xiàn)在我們對該程序的配置文件(App.config)作如下的修改,其目的在于采用CLR 4.0來運行該程序。再次運行該程序集之后,我們會在控制臺上得到不一樣的輸出結(jié)果。通過如下所示的輸出結(jié)果我們可以看出當.NET Framework從3.5升級到4.0的時候,將原本定義在程序集System.Core.dll中的部分類型轉(zhuǎn)移到了程序集mscorelib.dll之中。