<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      [C#]C#學習筆記-程序集

      C#學習筆記-程序集

      羅朝輝(http://www.rzrgm.cn/kesalin/

      《C#與.NET高級程序設計》讀書筆記

       

      1,程序集,簡單來說就是一個以公共語言運行庫(CLR)為宿主的,版本化的,自描述的二進制文件,雖然現實中的.NET程序集與Win32二進制文件的的擴展名相同(*.exe或*.dll),但是兩者的內部構成幾乎完全不同。C#程序集具有如下有點:使用命名空間確定類型邊界;可版本化;是自描述的(不需要訪問注冊表來定位);是可配置的。

      2,程序集的格式包括如下幾個部分:Win32文件首部;CLR文件首部;CIL代碼;類型元數據;程序集清單;可選的嵌入資源。我們可以使用 dumpbin.exe 來查看Win32文件首部和CLR文件首部,使用 ildasm.exe 或 reflector.exe來查看程序集的CIL代碼,元數據或清單。

      Win32文件首部:它使程序集可以被Windows系統加載或操作;

      CLR文件首部:它定義多個標記,使得運行庫可以了解到托管文件的布局。這些標記標識了文件中元數據和資源的位置,程序集構建的運行版本,(可選的)公鑰值等。 

      CIL代碼:CIL代碼是程序集的核心部分, 且是獨立于平臺和CPU的中間語言。在運行時,程序集內部的CIL代碼才被(實時的JIT編譯器)編譯成特定平臺和CPU的指令。正是這樣的機制,保證.NET程序集的跨平臺,跨語言。

      元數據:它完整地描述了程序集內含類型和引用外部類型的格式。運行庫利用元數據在內存的二進制布局類型中解析類型(以及類型的成員)的位置,使遠程方法調用更便利。此外,程序集必須被關聯一個manifest,該清單詳細記錄了程序集中的每一個模塊,構建程序集的版本以及該程序集引用的所有外部程序集。

      可選的嵌入資源:嵌入資源可包括應用程序圖標,圖像,聲音或字符串表,還支持附屬程序集(只包含本地化資源)。

      3,單文件程序集的所有必要部分(首部信息,CIL代碼,類型元數據,清單和必需的資源)都包含在一個*.exe 或 *.dll 包中。
      多文件程序集是一個.NET *.dll 的集合,這些dll作為單個邏輯單元進行部署和版本化。通常,其中一個會作為主模塊,它將包含程序集級別的清單(以及必要的CIL代碼,元數據,頭信息和可選資源)。主模塊的清單記錄了它依賴的每一個*.dll文件。根據命名習慣,多文件程序集的輔助模塊的文件擴展名一般是 *.netmodule,但這不是強制要求。輔助模塊也包含CIL代碼和類型元數據,同時還有一個模塊級別的清單,它記錄該模塊外部引用的程序集。 
      多文件程序集的優點是:提高了程序加載的效率-可按需加載;允許模塊由不同的.NET編程語言編寫。組成一個多文件程序集的模塊并沒有相互連接成一個大文件,它們只是依靠在主模塊清單中記錄的信息邏輯地連接在一起。
       
      4,私有程序集要求放置在客戶端應用程序所在目錄或其子目錄下。我們假定私有程序集并不需要詳細檢查版本,因為客戶端應用程序是唯一知道其存在的實體。.NET運行環境使用一種叫做探測(probing)的技術解析私有程序集的位置。該技術是一種把外部程序集請求映射到被請求的二進制文件的過程。嚴格來說,一個加載請求可以使顯示的或隱式的。隱式的加載請求發生在CLR查詢清單的.assembly extern標記來解析程序集位置的時候。顯式的加載請求發生在以編程方式調用System.Reflection.Assembly類的Load()或LoadFrom()方法時,這兩個方法主要在后期綁定或動態調用類型成員時用到。不管是顯式還是隱式,在CLR獲得程序集的名稱之后,便開始探測客戶端應用程序目錄(及其子目錄)下的*.dll文件,如果找不到就嘗試查找具有相同名字的可執行程序集*.exe,如果還找不到就會引發FileNotFound異常。當然我們也可以創建如*.config格式的配置文件來修改探測規則。
       
      5,共享程序集是類型和(可選)資源的集合,它與私有程序集的區別在于共享程序集的一個副本可供一臺機器上的多個應用程序使用。共享程序集是安裝在GAC下的,GAC是在Windows目錄下名為Assembly的目錄(如:C:\Windows\Assebly)。程序集被部署到GAC前,都會被賦予一個強名稱,該強名稱標識該程序集的發行者,其作用有點像COM中的GUID。強名稱是基于密碼學上的公鑰與私鑰的,這種機制比GUID更唯一和抗篡改。強類型由一組相關的數據組成:程序集的名稱,版本號,公鑰值(由sn.exe工具生成),用于本地化的可選區域性標識以及嵌入的數字簽名。
      posted @ 2012-02-18 09:56  飄飄白云  閱讀(492)  評論(0)    收藏  舉報
      本博客遵循 Creative Commons License “署名-非商業用途-保持一致”創作共用協議。 與我聯系
      主站蜘蛛池模板: 在线免费观看亚洲天堂av| 日韩精品理论片一区二区| 伊人久久精品无码麻豆一区| 麻豆亚洲精品一区二区| 国产系列高清精品第一页| 国产一区二区三区的视频| 久久99国产精品尤物| 又色又爽又黄18禁美女裸身无遮挡| 亚洲嫩模一区二区三区| 波多野结衣久久一区二区| 亚洲精品第一区二区三区| 制服丝袜美腿一区二区| 伊人av超碰伊人久久久| 福利视频在线一区二区| 亚洲人成网站18禁止| 亚洲av成人三区国产精品| 日韩中文字幕精品人妻| 人妻熟女一区二区aⅴ向井蓝| 亚洲Av综合日韩精品久久久| 久久综合老鸭窝色综合久久| 久久精品中文字幕少妇| 一区二区三区成人| 蜜臀久久综合一本av| 国产欧美久久一区二区三区| 国产人妻大战黑人20p| 久女女热精品视频在线观看| 无码激情亚洲一区| 热久久美女精品天天吊色| 二区三区国产在线观看| 99久久精品国产一区二区暴力 | 激情国产一区二区三区四| 午夜欧美精品久久久久久久| 免费久久人人香蕉av| 国产性色的免费视频网站| 郓城县| 国产成人高清亚洲综合| 日韩精品福利一区二区三区| 国产精品白浆在线观看免费| 国产精品一区二区久久精品| 日本国产精品第一页久久| 最新精品国偷自产在线|