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的对象,我正在尝试一种更通用的方式来进行模型绑定,而不必传入特定的对象。