C# Activator


需要動態的創建一個實例模型的時候,就用Activator.CreateInstance(Type type);如果是明確的知道要創建哪個實例的模型,就可以用 new

 

C#在類工廠中動態創建類的實例,所使用的方法為:

1. Activator.CreateInstance (Type)

2. Activator.CreateInstance (Type, Object[])

 
兩種方法區別僅為:創建無參數的構造方法和創建有參數的構造函數。

 

動態創建時,可能會動態使用到外部應用的DLL中類的實例,則此時需要進行反編譯操作,使用Reflection命名控件下的Assembly類。

//先使用Assembly類載入DLL,再根據類的全路徑獲取類

object result = null;
Type typeofControl = null;
Assembly tempAssembly;

tempAssembly = Assembly.LoadFrom(vDllName);
typeofControl = tempAssembly.GetType(vFullClassName);
result = Activator.CreateInstance(typeofControl, objParam);

 

 

實例化一個類的方式
用 New 關鍵字實例化一個類
New 關鍵字用於創建對象和調用構造函數。是實例化一個類最常見的方式。

用 Activator 實例化一個類
Activator 用以在本地或從遠程創建對象類型,或獲取對現有遠程對象的引用。其 CreateInstance 方法創建在程序集中定義的類型的實例。

用 Assembly 實例化一個類
Assembly 表示一個程序集,它是一個可重用、無版本沖突並且可自我描述的公共語言運行庫應用程序構造塊。該類可以加載程序集、瀏覽程序集的元數據和構成部分、發現程序集中包含的類型以及創建這些類型的實例。

加載程序集的推薦方式是使用 Load 方法。GetType 方法可用於在程序集中搜索特定類型。CreateInstance 方法可用於在程序集中搜索和創建類型的實例。
---------------------
作者:只要你在
來源:CSDN
原文:https://blog.csdn.net/icebergliu1234/article/details/84062674
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM