簡體   English   中英

加載Assembly並使用Reflection創建類

[英]Load Assembly and create class using Reflection

我找不到一種使用反射從給定類型和程序集定義創建類對象的方法。 就我而言,我有一個包含類和程序集名稱的字符串,需要創建該對象:

string str = "My.Assembly.Namesapce.MyClass, My.Assembly.Namesapce, Version=4.0.0.0, Culture=neutral, PublicKeyToken=84474dc3c6524430";
var objClass = --SOME CODE TO USE  STR AND CREATE MyClass--

我試圖拆分並創建類,但這不是很好的方法。

Type type = Type.GetType(str);
object objClass = Activator.CreateInstance(type);

但是,要對對象執行任何有用的操作,您將必須使用公共接口/基類,反射或dynamic

注意:如果您可以將變量鍵入為MyClass objClass ,則當然是更簡單的版本:

MyClass objClass = new MyClass();

您需要做兩件事:

1)將您的字符串str轉換為類型,然后2)創建該類型的實例。

string typeString = "My.Assembly.Namesapce.MyClass, My.Assembly.Namesapce, Version=4.0.0.0, Culture=neutral, PublicKeyToken=84474dc3c6524430";

// Get a reference to the type.
Type theType = Type.GetType(typeString, true, false);

// Create an instance of that type.
MyClass  theInstance = (MyClass)Activator.CreateInstance(theType);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM