什麼是assembly(程式集)?
assembly是乙個包含來程式的名稱,版本號,自我描述,檔案關聯關係和檔案位置等資訊的乙個集合。在.net框架中通過assembly類來支援,該類位於system.reflection下,物理位置位於:mscorlib.dll。
assembly能幹什麼?
我們可以通過assembly的資訊來獲取程式的類,例項等程式設計需要用到的資訊。
乙個簡單的演示例項:
1.建立乙個console工程名為:namespaceref
2.寫入如下**:
2usingsystem.collections.generic;
3usingsystem.text;
4usingsystem.reflection;56
namespacenamespaceref721
}2223
classcountry
2427
28classchinese : country
2934
}3536
classamerica : country
3742
}43}由於assembly的存在給我們在實現設計模式上有了乙個更好的選擇。
我們在開發的時候有時候會遇到這樣的乙個問題,根據對應的名稱來建立指定的物件。如:給出chinese就要建立乙個chinese物件,以前我們只能這樣來寫**:
=newchina();
3elseif(strongclassname =="america")
4cy =newamerica();
那麼如果我們有很長的一系列物件要建立,這樣的**維護起來是很困難的,而且也不容易閱讀。現在我們可以通過在外部檔案定義類的程式集名稱和類的強名稱來獲得這樣乙個例項,即易於理解,又增強了擴充套件性還不用修改**。
cy = (country)assembly.load(assemblyname).createinstance(strongclassname);
結論
assembly類有很多的方法和屬性,它和type一樣有很多功能用於名稱與方法和屬性之間的轉化。深入理解這兩個類,你就可以清晰通用語言層是如何工作。
c 反射 簡單小例子
介面using system usingsystem.text namespacejiang.iform voidrun 以下是實現介面的類 using system using system.drawing using system.text using system.windows.forms ...
java反射的簡單應用
反射 在執行過程中,通過類或者物件使用類中的所有方法或屬性。擁有的class檔案。獲取class類的物件。方式1 使用類的getclass 方法。方式2 資料型別的.class靜態屬性。方式3 使用的是class類的forname 靜態方法。類的全路徑。準備 suppresswarnings all...
java反射的簡單應用
1.乙個靜態方法,如果傳遞過來的是物件,則直接呼叫該物件的tostring 方法列印出來,如果是陣列,則把陣列中的每個元素列印出來。如果是物件則直接列印出來,是陣列則挨個列印出來 class arrayreflect printobject intarrays public static void ...