C# 将字符串参数转换为对象类型

C# 将字符串参数转换为对象类型,c#,asp.net-mvc,C#,Asp.net Mvc,考虑以下代码: public ActionResult GenericActionForSomething(string objectType) { switch (objectType) { case "Business": // Do Something with object here, like save _db.Create<Business>()

考虑以下代码:

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

        return View();
    }
public ActionResult GenericActionForSomething(字符串对象类型)
{
开关(对象类型)
{
案例“业务”:
//在这里对对象执行一些操作,例如保存
_db.Create();
打破
}
返回视图();
}

如何将字符串参数转换为对象?对于本例,我需要将参数“objectType”转换为类型为“Business”的对象。任何想法都将不胜感激

没有一种方法可以做到这一点。如果您的
业务
类具有接受
字符串
的构造函数,则可以调用该构造函数。如果它有一个显式转换运算符,您也可以使用它。如果它有一个关联的
类型转换器
,也可以使用它


您的问题太宽泛了。

您可以使用基于对象类型名的对象实例化。对于方法的特定重载,还需要提供程序集名称;为此,您可能会发现类和方法很有用。

我认为您可能希望对您的操作进行模型绑定,例如:

public ViewResult NewBusiness(Business business)
{
    _db.Create<Business>(business);
    return View();
}
公共视图结果新业务(业务)
{
_db.创建(业务);
返回视图();
}

阅读的概述。

您需要使用反射来实现这一点。 您可以使用
Activator.CreateInstance(className)
方法,也可以先加载包含您的类型的Assemply,然后调用CreateInstance()方法,如下所示:

Assembly assem = Assembly.Load(assemblyName);
Object obj = assem.CreateInstance(className);

看看反射和动态类实例化,我猜他想实例化objectType classI的对象,我正在尝试一种更通用的方式来进行模型绑定,而不必传入特定的对象。