Assembly(c#中簡單說明)
          2008-07-11 00:27

          什么是Assembly(程序集)?
          Assembly是一個包含來程序的名稱,版本號,自我描述,文件關聯關系和文件位置等信息的一個集合。在.net框架中通過Assembly類來支持,該類位于System.Reflection下,物理位置位于:mscorlib.dll。

          Assembly能干什么?
          我們可以通過Assembly的信息來獲取程序的類,實例等編程需要用到的信息。

          一個簡單的演示實例:
          1.建立一個Console工程名為:NamespaceRef
          2.寫入如下代碼:

          1using System;
          2using System.Collections.Generic;
          3using System.Text;
          4using System.Reflection;
          5
          6namespace NamespaceRef
          7{
          8    class Program
          9    {
          10        static void Main(string[] args)
          11        {
          12             Country cy;
          13             String assemblyName = @"NamespaceRef";
          14            string strongClassName = @"NamespaceRef.China";
          15            // 注意:這里類名必須為強類名
          16            // assemblyName可以通過工程的AssemblyInfo.cs中找到
          17             cy = (Country)Assembly.Load(assemblyName).CreateInstance(strongClassName);
          18             Console.WriteLine(cy.name);
          19             Console.ReadKey();
          20         }
          21     }
          22
          23    class Country
          24    {
          25        public string name;
          26     }
          27
          28    class Chinese : Country
          29    {
          30        public Chinese()
          31        {
          32             name = "你好";
          33         }
          34     }
          35
          36    class America : Country
          37    {
          38        public America()
          39        {
          40             name = "Hello";
          41         }
          42     }
          43}

          由于Assembly的存在給我們在實現設計模式上有了一個更好的選擇。
          我們在開發的時候有時候會遇到這樣的一個問題,根據對應的名稱來創建指定的對象。如:給出chinese就要創建一個chinese對象,以前我們只能這樣來寫代碼:
          1if (strongClassName == "China")
          2     cy = new China();
          3else if (strongClassName == "America")
          4     cy = new America();
          那么如果我們有很長的一系列對象要創建,這樣的代碼維護起來是很困難的,而且也不容易閱讀。現在我們可以通過在外部文件定義類的程序集名稱和類的強名稱來獲得這樣一個實例,即易于理解,又增強了擴展性還不用修改代碼。
          cy = (Country)Assembly.Load(assemblyName).CreateInstance(strongClassName);

          結論
          Assembly類有很多的方法和屬性,它和Type一樣有很多功能用于名稱與方法和屬性之間的轉化。深入理解這兩個類,你就可以清晰通用語言層是如何工作。

          文章來源:http://www.cnblogs.com/wangdetian168/archive/2008/10/18/1313990.html
          posted on 2010-09-30 12:22 sanmao 閱讀(218) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 合作市| 大港区| 河北省| 台湾省| 澄江县| 准格尔旗| 东莞市| 团风县| 德钦县| 井冈山市| 德清县| 朝阳市| 轮台县| 敦化市| 河源市| 图片| 沙洋县| 进贤县| 南木林县| 淄博市| 察哈| 惠东县| 江门市| 新绛县| 三明市| 祥云县| 唐河县| 安化县| 灵川县| 洪江市| 荥阳市| 南雄市| 漳州市| 朝阳县| 都江堰市| 石屏县| 黄冈市| 宣武区| 泰州市| 盘锦市| 泽库县|