2009-12-18 88 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);