2009-12-18 91 views
1

考慮下面的代碼:轉換字符串參數object類型

public ActionResult GenericActionForSomething(string objectType) 
    { 
     switch (objectType) 
     { 
      case "Business": 
       // Do Something with object here, like save 
       _db.Create<Business>(); 
       break; 
     } 

     return View(); 
    } 

我如何轉換字符串參數爲一個對象?在這個例子中,我需要將參數「objectType」轉換爲「Business」類型的對象。任何想法將不勝感激。

+1

看反射和動態類的實例。 – 2009-12-18 08:41:41

回答

0

沒有人能做到這一點。如果你的Business類有一個接受string的構造函數,你可以調用它。如果它有一個明確的轉換運算符,那麼也可以使用它。如果它有一個關聯的TypeConverter,也使用它。

你的問題太寬泛了。

+0

我想他想實例化objectType類的對象 – 2009-12-18 08:43:13

0

我在想,你可能會想要做模型綁定到你的動作,如:

public ViewResult NewBusiness(Business business) 
{ 
    _db.Create<Business>(business); 
    return View(); 
} 

閱讀的model binding in this article概述。

+0

我想要做一個更通用的方式來做模型綁定,我不必傳入特定的對象。 – Victor 2009-12-18 09:17:45

0

您需要使用反射來實現此目的。 您可以使用Activator.CreateInstance(className)方法也可以先加載包含您的類型Assemply,然後調用的CreateInstance()方法是這樣的:

Assembly assem = Assembly.Load(assemblyName); 
Object obj = assem.CreateInstance(className); 
相關問題