国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Net程序集的要點(diǎn)()

Net程序集的要點(diǎn)(zhuan)

 

1. 程序集由程序集元數(shù)據(jù)、類型元數(shù)據(jù)、中間語(yǔ)言代碼和資源構(gòu)成。其中程序集元數(shù)據(jù)的一個(gè)重要組織部分是程序集清單,
  
它描述了本程序集和引用該程序集所需要的所有信息,并列出了所有的依賴關(guān)系。清單由以下部分組成:

    (1).
標(biāo)識(shí)(名稱、版本、文化和公鑰)。公鑰用于惟一地標(biāo)識(shí)程序集。

    (2).
屬于該程序集的一個(gè)文件列表。一個(gè)程序集可以擁有一到無(wú)數(shù)個(gè)文件。

    (3).
該程序集引用的程序集的列表。在程序集清單中說(shuō)明了在程序集中使用的所有程序集,以及它們的版本號(hào)和公鑰。

    (4).
一組許可請(qǐng)求---運(yùn)行該程序集需要的許可。

    (5).
導(dǎo)出的類型,這些類型是在程序集引用的模塊中定義的。

2.
在一個(gè)程序集中可以有不同的命名空間,一個(gè)命名空間也可以分布在多個(gè)程序集中。

3.
程序集分為私有程序集和共享程序集。在引用私有程序集時(shí),如果程序集是個(gè)exe文件,不能用添加引用的方式引用它,

   
應(yīng)該把它手動(dòng)拷貝到目標(biāo)目錄下。如果是.dll文件可以使用添加引用的方式,引用之后系統(tǒng)會(huì)自動(dòng)在目標(biāo)目錄下創(chuàng)建該程序集的副本,

   
無(wú)需手動(dòng)拷貝。對(duì)于共享程序集,則需要將其安裝到全局程序集緩存中,gacutil.exe工具可以在安裝程序的腳本中調(diào)用。

   
另外,如果查看全局程序集緩存,可以打開(kāi)C:\Windows\Assembly文件夾查看。

    gacutil /l
顯示全局程序集緩存中的所有程序集。

    gacutil /i mydll
把共享程序集mydll安裝到全局程序集緩存中。

    gacutil /u mydll
卸載mydll程序集。

   
引用共享程序集的方法和引用私有的dll程序集的方式是一樣的,只是系統(tǒng)不會(huì)再把dll的副本拷貝到你的目標(biāo)目錄下,

   
而是從程序集緩存中加載該程序集。

4.
程序集的強(qiáng)名

   
共享程序集最關(guān)鍵的是要有一個(gè)全局惟一的名稱,這個(gè)名稱在.NET中叫做強(qiáng)名。強(qiáng)名由以下部分組成:

    (1).
程序集本身的名稱

    (2).
版本號(hào)。有了版本號(hào),可以同時(shí)使用同一個(gè)程序集的不同版本。不同的版本可以同時(shí)存在,并可以同時(shí)加載到同一個(gè)進(jìn)程上。

    (3).
公鑰,它可以保證強(qiáng)名稱的獨(dú)一無(wú)二。它也可以保證引用的程序集不會(huì)被篡改或代替。

    (4).
文化。

   
創(chuàng)建強(qiáng)名文件:

   
在命令行使用sn –k mykey.snk 就可以生成一個(gè)公鑰/私鑰對(duì),并把它存到snk文件中。

   
私鑰用來(lái)為組件進(jìn)行數(shù)字簽名,公鑰被引用該程序集的程序驗(yàn)證該程序集時(shí)使用。同時(shí),公鑰也成為了程序集強(qiáng)名的一部分。

   
具有強(qiáng)名的程序集,通過(guò)ildasm反編譯工具查看時(shí),可以在程序集清單中看到這個(gè)公鑰。

5. 關(guān)于服務(wù)器組件(Enterprise Services
    (1).
服務(wù)組件需要有強(qiáng)名稱。

    (2).
應(yīng)當(dāng)在"全局程序集緩存"(GAC) 中注冊(cè)服務(wù)組件,因?yàn)檫@些組件是系統(tǒng)級(jí)別的資源。服務(wù)器應(yīng)用程序要求安裝在 GAC 中,

   
庫(kù)應(yīng)用程序則不要求這樣(但是建議安裝在 GAC 中)。

    (3).
您可以通過(guò)延遲注冊(cè)自動(dòng)向 COM+ 注冊(cè)服務(wù)組件,也可以通過(guò) Regsvcs.exe 實(shí)用工具手動(dòng)注冊(cè)。

   
自動(dòng)注冊(cè)(部署):

   
如果啟動(dòng)了使用服務(wù)組件的.NET客戶應(yīng)用程序,就會(huì)自動(dòng)配置COM+應(yīng)用程序。所有派生于ServicedComponent的類都是這樣。

自動(dòng)部署的一個(gè)重要的缺點(diǎn)是,在自動(dòng)部署時(shí),客戶應(yīng)用程序需要有管理權(quán)限。如果客戶應(yīng)用程序是ASP.NET應(yīng)用程序,

ASP.Net
運(yùn)行庫(kù)一般沒(méi)有管理權(quán)限。所以自動(dòng)部署僅用于開(kāi)發(fā)階段。因此,對(duì)于開(kāi)發(fā)階段來(lái)說(shuō),這帶來(lái)了很大方便,在每次創(chuàng)建了

服務(wù)組件之后,都不用手動(dòng)部署。

   
手工注冊(cè)(部署):

   
使用命令:regsvcs SimpleServer.dll就可以把程序集SimpleServer注冊(cè)為一個(gè)COM+應(yīng)用程序。

 

程序集 .NET 框架應(yīng)用程序的主要構(gòu)造塊。它是一個(gè)功能集合,并以單個(gè)實(shí)現(xiàn)單元(一個(gè)或多個(gè)文件)的形式生成、版本化和部署。所有托管類型和資源或者只在其實(shí)現(xiàn)單元中標(biāo)記為可訪問(wèn),或者在該單元外由代碼標(biāo)記為可訪問(wèn)。
程序集通過(guò)其清單(每個(gè)程序集不可缺少的部分)進(jìn)行自我描述。

   
建立程序集標(biāo)識(shí)(以文本名稱的形式)、版本、區(qū)域性和數(shù)字簽名(如果程序集將在應(yīng)用程序間共享)。

定義組成程序集實(shí)現(xiàn)的文件(按名稱和文件散列)。

指定組成程序集的類型和資源,包括從程序集導(dǎo)出的類型和資源。

逐條列出其他程序集上的編譯時(shí)依賴項(xiàng)。

指定程序集正確運(yùn)行所需的權(quán)限集

命名空間名稱和程序集名稱之間的差異是什么?
   
命名空間是類型的邏輯命名方案,此方案中簡(jiǎn)單的類型名稱(如 MyType)用以點(diǎn)分隔的分層名稱開(kāi)頭。這樣的命名方案完全受開(kāi)發(fā)人員控制。例如,類型 MyCompany.FileAccess.A MyCompany.FileAccess.B 可能在邏輯上應(yīng)具有與文件訪問(wèn)相關(guān)的功能。.NET 框架使用分層命名方案將類型分為相關(guān)功能(例如 ASP.NET 應(yīng)用程序框架)或遠(yuǎn)程處理功能的邏輯類別。設(shè)計(jì)工具可以利用命名空間使開(kāi)發(fā)人員在代碼中瀏覽和引用類型更容易。命名空間的概念與程序集的概念無(wú)關(guān)。單個(gè)程序集可以包含分層名稱具有不同命名空間根的類型,而邏輯命名空間根可以跨越多個(gè)程序集。在 .NET 框架中,命名空間是邏輯設(shè)計(jì)時(shí)命名便利,而程序集在運(yùn)行時(shí)建立類型的名稱范圍

什么是專用程序集和共享程序集?
   
專用程序集僅由單個(gè)應(yīng)用程序使用,并存儲(chǔ)在該應(yīng)用程序的安裝目錄中(或其中的子目錄中)。共享程序集是一個(gè)可以由多個(gè)應(yīng)用程序引用的程序集。為了共享程序集,必須給予該程序集一個(gè)加密的強(qiáng)名稱(有時(shí)又稱強(qiáng)名稱),為此目的顯式生成程序集。相比之下,專用程序集名稱只需在使用它的應(yīng)用程序中是唯一的。

通過(guò)區(qū)分專用程序集和共享程序集,我們以顯式?jīng)Q策的形式引入共享概念。只需將專用程序集部署到應(yīng)用程序目錄,即可保證該應(yīng)用程序只與用來(lái)生成和部署它的位一起運(yùn)行。對(duì)專用程序集的引用只被本地解析到專用應(yīng)用程序目錄。
  
可以舉出多個(gè)生成和使用共享程序集的理由,如表示版本策略的能力。共享程序集有一個(gè)加密的強(qiáng)名稱,這意味著只有此程序集的作者具有產(chǎn)生程序集新版本的密鑰。因此,如果您生成一個(gè)策略語(yǔ)句,表明自己希望接受程序集的新版本,則應(yīng)確信版本更新將受作者的控制和驗(yàn)證。否則,您不必接受它們。
   
對(duì)于本地安裝的應(yīng)用程序,共享程序集通常被顯式安裝到全局程序集緩存中(由 .NET 框架維護(hù)的程序集的本地緩存)。.NET 框架版本管理功能的關(guān)鍵是:下載的代碼不影響本地安裝的應(yīng)用程序的執(zhí)行。下載的代碼放置在特殊的下載緩存中,并且在計(jì)算機(jī)上不是全局可用的,即使以共享程序集的形式生成了某些下載組件。

.NET
框架隨附的類均以共享程序集的形式生成。

形象的舉例:

       
如果說(shuō)命名空間是類庫(kù)的邏輯組織形式,那么程序集就是類庫(kù)的物理組織形式。只有同時(shí)指定類型所在的命名空間及實(shí)現(xiàn)該類型的程序集,才能完全限定該類型。(摘抄自《精通.NET核心技術(shù)--原來(lái)與架構(gòu)》   電子工業(yè)出版社)
  
 
例如我們要用A類,則需要把包含A類的程序集(*.DLL)引用到該工程中(物理);而在程序中要聲明A類的命名空間(邏輯)。

     
程序集就是程序的集合啊,可以理解為一個(gè)項(xiàng)目中的一堆程序,一般一個(gè)項(xiàng)目是一個(gè)程序集,在項(xiàng)目中右鍵屬性里面可以設(shè)置程序集的名字。(理解成dllexe也差不多)
  
     
程序集也不是物理組織的,例如:一個(gè)文件可以包含多個(gè)程序集,一個(gè)程序集也可以分成幾個(gè)文件。

     
名稱空間是類型的一種邏輯命名方案,其中簡(jiǎn)單類型名稱(如   MyType前面帶有用點(diǎn)分隔的層次結(jié)構(gòu)名稱。這樣的命名方案完全在開(kāi)發(fā)人員的控制之下。例如,鍵入   MyCompany.FileAccess.A      MyCompany.FileAccess.B   在邏輯上將會(huì)具有與文件訪問(wèn)相關(guān)的功能。.NET   框架使用一種層次結(jié)構(gòu)命名方案,用于將類型按相關(guān)功能的邏輯類別進(jìn)行分組,例如,ASP.NET   應(yīng)用程序框架或遠(yuǎn)程處理功能。設(shè)計(jì)工具可以利用名稱空間使開(kāi)發(fā)人員更容易在代碼中瀏覽和引用類型。名稱空間的概念與程序集的概念之間沒(méi)有任何聯(lián)系。一個(gè)程序集可以包含其層次結(jié)構(gòu)名稱具有不同名稱空間根的類型,而一個(gè)邏輯名稱空間根可以跨越多個(gè)程序集。在   .NET   框架中,名稱空間是在設(shè)計(jì)時(shí)進(jìn)行邏輯命名的便捷方式,而程序集在運(yùn)行時(shí)為類型建立名稱作用域。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
什么是程序集 - 而立的日志 - 網(wǎng)易博客
把程序集安裝到全局程序集緩存中的步驟
(1)程序集基礎(chǔ)知識(shí)
C#Assembly詳解
未能添加對(duì)“Microsoft EXCEL 11.0 Object Library”的引用
調(diào)程序遇到的問(wèn)題-命名空間“Microsoft”中不存在類型或命名空間名稱“Web”(是缺...
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服