直播中
assembly, 這里把它翻譯為配件, 以示和組件(Component)加以區(qū)別. 如果您覺(jué)得不合適, 請(qǐng)指正!
一個(gè)配件有時(shí)候是指一個(gè)EXE或者DLL文件, 實(shí)際上是一個(gè)應(yīng)用程序(就是指帶有主程序入口點(diǎn)的模塊)或者一個(gè)庫(kù)文件. 但是配件實(shí)際上可以是由一個(gè)或者多個(gè)文件組成(dlls, exes, html等等), 代表一組資源, 以及類(lèi)型的定義和實(shí)現(xiàn)的集合. 一個(gè)配件也可以包含對(duì)其它配件的引用. 所有這些資源、類(lèi)型和引用都在一個(gè)列表(manifest)中描述。這個(gè)manifest也是配件的一部分,所以配件是一個(gè)自我描述的,不需要其它附加的部件對(duì)其描述!
配件的另一個(gè)重要特性是,它是.Net環(huán)境下類(lèi)型標(biāo)識(shí)的一部分,也可以說(shuō)是基本單位。因?yàn)椋瑓^(qū)分一個(gè)類(lèi)型的標(biāo)識(shí)就是包含這個(gè)類(lèi)型的配件名字加上類(lèi)型名本身。舉個(gè)例子,配件A定義了類(lèi)型T, 配件B也定義了同名類(lèi)型T,但是.Net把這兩個(gè)類(lèi)型認(rèn)為是不同的類(lèi)型。
注意,不要把配件(assembly)和名字空間(namespace)混淆起來(lái)。其實(shí),名字空間僅僅是用來(lái)把類(lèi)型名用樹(shù)的形式組織起來(lái)的手段。對(duì)于運(yùn)行是環(huán)境來(lái)講,類(lèi)型名就是類(lèi)型名,和名字空間一點(diǎn)關(guān)系都沒(méi)有。
總之,記住配件名加上類(lèi)型名唯一標(biāo)識(shí)一個(gè)運(yùn)行時(shí)類(lèi)型。
另外,配件也是.Net框架用于安全策略的基本單位,許多安全策略都是基于配件的。