2009-10-28 48 views

回答

0

如果您有一個名爲「RipperTest.dll」 的程序集並且它的名稱空間是「RipperTest」,則可以將完全限定的程序集名稱作爲類型字符串。

在使用此類型之前,如果程序集不在調用程序集中,則必須確保程序集已加載。

了在RipperTest命名空間稱爲「Ripper1」在RipperTest.dll

namespace RipperTest 
{ 
    [Serializable] 
    public class Ripper1 : RipperBase 
    { 
    } 
} 

Type myType = Type.GetType("RipperTest.Ripper1"); 

,然後在以後使用這種類型的

var newObject = Activator.CreateInstance(myType); 

類如果你的原始實例實現你一個特定的接口可以投射到該界面而不是返回對象。

像這樣:

var newObject = (IRipper)Activator.CreateInstance(myType); 

如果你想從當前裝配返回類的列表,你可以做這樣的事情:

Assembly execAsm = Assembly.GetExecutingAssembly(); 

Type myType = (from type in execAsm.GetTypes() 
            where type.Name.Equals("YourTypeNameHere") 
            select type).FirstOrDefault(); 
+0

我不明白「全.Qualified.Namespace.Type「 – AndreMiranda 2009-10-28 15:01:33

+0

謝謝Michael!但是,只是爲了補充你的答案,我怎樣才能讓IQueryable從這個myType的數據庫中檢索數據? – AndreMiranda 2009-10-28 15:23:11

+0

我不確定我是否關注你,你能發表你目前在做什麼的代碼示例嗎? – 2009-10-28 15:24:21

相關問題