我正在c#/ Asp.Net 4.0中创建网站功能。
我有一个查询我的数据库并返回贷款提供者列表(“贷方”)的函数。
一旦我构建了我的列表,然后我遍历列表并为每个列表执行HttpPost。每个贷方都有非常具体和独特的数据要求,因此每个贷方都有一个类,它继承了一个接口。
MrLenderRequest : IPingtreeRequest
当我遍历列表时,我需要将数据映射到类。目前我以这种非常规的方式进行,从循环中调用此代码:
IPingtreeRequest GetLenderRequest(string lender)
{
IPingtreeRequest lenderRequest = null;
switch (lender)
{
case "MrLender":
lenderRequest = new MrLenderRequest(_data);
break;
default:
lender.ThrowCaseNotHandled();
break;
}
return lenderRequest;
}
如果您有4或5,这是可以的,但如果有50或更多,则没有。我想知道是否有更优雅/通用的方法来映射该类。
答案 0 :(得分:2)
您可以使用Type.GetType
,然后使用Activator
来实例化对象。
string lender = "MrLender";
var lenderType = Type.GetType(lender + "Request"); // Include your namespaces
IPingtreeRequest lenderRequest = (IPingtreeRequest)Activator.CreateInstance(lenderType);