Effective C# :建立二進位制元件
程式集在.NET中充當了元件包的角色,每個程式集都可以獨立的釋出和升級,制約我們升級一個程式集的因素是“如何儘量減少程式集之間的耦合”。
當程式啟動時,CLR載入器並不會載入所有被引用的程式集,而是之用當CLR需要某個程式集中的元素時,才會去解析相關的引用,它會首先找到被引用的程式集,然後載入它,並JIT編譯必要的IL程式碼。
程式集分為“強命名程式集”和“弱命名程式集”,其中“強命名程式集”包含:程式集的文字名稱、版本號、語言文化以及共有金鑰標記。而“弱命名程式集”只包含程式集的文字名稱。
注意:1)只有強命名程式集才可以儲存在GAC中;2)我們可以使用配置檔案來改變應用程式中每個強命名程式集的預設行為;3)強命名程式集可以防止惡意的篡改,從而可以為應用程式提供更高的安全保障。
程式集的版本號由4部分組成:Major.Minor.Build.Revision,編譯器可以自動生成Build版本號和Revision版本號,生 成規則:Build版本號是自2000年1月1日以來的天數;Revision版本號是自午夜以來的秒數再除以2,這種演算法可以保證每次編譯出來的版本號 都是唯一的。
在升級程式集時,我們需要保證升級前的元件介面中的公有成員和受保護成員要和升級後的元件在IL層次上保持相容,即我們不能刪除方法、不能修改引數和返回值。我們必須確保升級後引用該元件的所有其他元件不需要重新編譯。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-625749/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 用C#實現二進位制的減法(包括二進位制小數)C#
- Carthage和iOS元件二進位制化iOS元件
- 二進位制與二進位制運算
- C#的二進位制檔案操作C#
- 進位制詳解:二進位制、八進位制和十六進位制
- JavaScript 二進位制、八進位制與十六進位制JavaScript
- JavaScript二進位制陣列建立注意點JavaScript陣列
- (二進位制)
- 二進位制
- 十進位制——二 (八、十六 )進位制
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 【進位制轉換】二進位制、十六進位制、十進位制、八進位制對應關係
- 二進位制、十進位制與十六進位制相互轉化
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 二進位制,八進位制,十進位制,十六進位制之間的轉換
- Python 進位制互相轉換(二進位制、十進位制和十六進位制)Python
- 計算機基礎進位制轉換(二進位制、八進位制、十進位制、十六進位制)計算機
- C# 2進位制、8進位制、10進位制、16進位制...各種進位制間的輕鬆轉換C#
- 二進位制轉十進位制快速方法
- 用C#程式碼實現二進位制與十進位制的互相轉換C#
- JAVA 二進位制,八進位制,十六進位制,十進位制間進行相互轉換Java
- 什麼是二進位制?二進位制如何轉換?
- 04 二進位制
- 大話二進位制,八進位制,十進位制,十六進位制之間的轉換
- JavaScript十進位制轉換為二進位制JavaScript
- Oracle二進位制與十進位制轉換Oracle
- 十進位制轉二進位制推導(草稿)
- [計算機基礎] 計算機進位制轉換:二進位制、八進位制、十進位制、十六進位制計算機
- 6.3建立自己執行的二進位制檔案
- Oracle建立二進位制檔案索引的方法(轉)Oracle索引
- 一看就懂二進位制、八進位制、十六進位制數轉換十進位制
- python進位制轉換(二進位制、十進位制和十六進位制)及注意事項Python
- Oracle中的二進位制、八進位制、十進位制、十六進位制相互轉換函式Oracle函式
- 進位制之間的轉換之“十六進位制 轉 十進位制 轉 二進位制 方案”
- c#進位制轉換C#
- 整數轉化成八進位制、十六進位制、二進位制,以及轉回
- 十進位制與二進位制互相轉換指南
- 二進位制轉十進位制快速轉換方法