c# – 使用Web服务的代理类从字符串值动态调用方法名称

我在我的项目中创建了代理Web服务.我想从参数中调用方法名称作为字符串,我需要从这些方法获得响应,但它只返回一个字符串.所以请任何人帮助我.

在这里,我需要传递MethodName.

例如:

string response = mut.MethodName(RequestData);

[WebMethod]
public string CALLPROXY(string MethodName, string RequestData)
{

    WebReference.IMPSMethods mut = new WebReference.IMPSMethods();
    mut.Url = "http://xxxxxxxxxxx.asmx?wsdl";
    mut.Credentials = System.Net.CredentialCache.DefaultCredentials;
    //string response = mut.LOGIN(RequestData);
    string response = mut + "." + MethodName + "(" + RequestData + ")";
    return response;

}

最佳答案 试试这个

string response = typeof(WebReference.IMPSMethods)
                     .GetMethod(MethodName)
                     .Invoke(mut, new object[] { RequestData })

如果您的类IMPSMethods有重载,您将需要使用重载的.GetMethod()调用来缩小它(查找特定的参数类型等).

点赞