使用Assembly來開發C 程式

2021-06-14 09:30:43 字數 1397 閱讀 1726

什麼是assembly(程式集)?

assembly是乙個包含程式的名稱,版本號,自我描述,檔案關聯關係和檔案位置等資訊的乙個集合。在.net 框架中通過assembly類來支援,該類位於system。reflection下,物理位置位於mscorlib.dll。

assembly能幹什麼?

我們可以通過assembly的資訊來獲取程式的類,例項等程式設計需要用到的資訊。使用assembly定義和引導程式集,載入在程式集清單中列出的模組,以及從此程式集中查詢型別並建立該型別的例項。定義乙個assembly,它是可重用,無版本衝突並且可以自我描述的公共語言執行庫應用程式構造塊。

如果,我要建立乙個類的例項,必須知道該類的命名空間(這個一般都知道)+程式集(這個很容易被我們忽略,因為一般我們不需要引用外部和程式集,如果用c#做過excel檔案的匯入匯出,就會知道必須新增乙個excel相關的程式集引用)

乙個簡單的演示例項:

1.建立乙個console工程名為:namespaceref

2.寫入如下**:

1using

system;

2using

system.collections.generic;

3using

system.text;

4using

system.reflection;56

namespace

namespaceref721

2223

class

country

2427

28class

chinese : country

2934

3536

class

america : country

3742

43由於assembly的存在給我們在實現設計模式上有了乙個更好的選擇。

我們在開發的時候有時候會遇到這樣的乙個問題,根據對應的名稱來建立指定的物件。如:給出chinese就要建立乙個chinese物件,以前我們只能這樣來寫**:

1if(strongclassname =="

china")

2cy

=new

china();

3else

if(strongclassname =="

america")

4cy

=new

america();

那麼如果我們有很長的一系列物件要建立,這樣的**維護起來是很困難的,而且也不容易閱讀。現在我們可以通過在外部檔案定義類的程式集名稱和類的強名稱來獲得這樣乙個例項,即易於理解,又增強了擴充套件性還不用修改**。

cy = (country)assembly.load(assemblyname).createinstance(strongclassname);

使用Assembly來開發c 程式

什麼是assembly 程式集 assembly是乙個包含來程式的名稱,版本號,自我描述,檔案關聯關係和檔案位置等資訊的乙個集合。在.net框架中通過assembly類來支援,該類位於system.reflection下,物理位置位於 mscorlib.dll。assembly能幹什麼?我們可以通過...

C 在使用Assembly引導程式集時失敗

錯誤現象 進行外掛程式讀取時出現錯誤 嘗試從乙個網路位置引導程式集,在早期版本的 net framework 中,這會導致對該程式集進行沙盒處理。此發行版的 net framework 預設情況下不啟用 cas 策略,因此,此載入可能會很危險。如果此載入不是要對程式集進行沙盒處理,請啟用 loadf...

使用 flask restful 來開發API

在雙十一買了阿里云云小蜜的培訓課程,花了幾天學了一下,不過考了兩次都沒有考過,但是能夠熟練使用雲小蜜來搭建業務了,為了整合一些外部資料,例如天氣,交通,電影啥的,需要封裝處理一下第三方api或者呼叫自己的資料庫。最後的需求就是變成restful api了,可以把這個請求位址直接放到雲小蜜裡邊。res...