所謂類型轉(zhuǎn)移(Type Forwarding)就是將定義在某個(gè)程序集中的類型轉(zhuǎn)移到另一個(gè)程序集中。我們先通過一個(gè)簡單的實(shí)例讓讀者朋友們對類型轉(zhuǎn)移有一個(gè)感官上的認(rèn)識(shí)。我們利用Visual Studio創(chuàng)建一個(gè)針對.NET Framework 3.5的控制臺(tái)應(yīng)用,并編寫如下一端簡單的程序輸出兩個(gè)常用的類型(Function<T>和TimeZoneInfo)所在程序集的名稱?,F(xiàn)在我們直接運(yùn)行這個(gè)程序,會(huì)在控制臺(tái)上得到如下所示的輸出結(jié)果,可以看出.NET Framework 3.5(CLR 2.0)環(huán)境下的這兩個(gè)類型定義在程序集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來運(yùn)行該程序。再次運(yùn)行該程序集之后,我們會(huì)在控制臺(tái)上得到不一樣的輸出結(jié)果。通過如下所示的輸出結(jié)果我們可以看出當(dāng).NET Framework從3.5升級(jí)到4.0的時(shí)候,將原本定義在程序集System.Core.dll中的部分類型轉(zhuǎn)移到了程序集mscorelib.dll之中。

網(wǎng)友評論