1

我正在 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 个或更多,则不行。我想知道是否有更优雅/通用的映射类的方法。

4

1 回答 1

2

您可以使用Type.GetType然后使用Activator来实例化对象。

string lender = "MrLender";
var lenderType = Type.GetType(lender + "Request"); // Include your namespaces
IPingtreeRequest lenderRequest = (IPingtreeRequest)Activator.CreateInstance(lenderType);
于 2013-05-07T09:44:28.203 回答