C# Activator

須要動態的建立一個實例模型的時候,就用Activator.CreateInstance(Type type);若是是明確的知道要建立哪一個實例的模型,就能夠用 new函數

 

C#在類工廠中動態建立類的實例,所使用的方法爲:.net

1. Activator.CreateInstance (Type)對象

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

 
兩種方法區別僅爲:建立無參數的構造方法和建立有參數的構造函數。io

 

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

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

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 版權聲明:本文爲博主原創文章,轉載請附上博文連接!

相關文章
相關標籤/搜索