我知道这个问题被问到了分配,但找不到我做错的地方。我正在使用反射在 Web 服务 GetProduct 和 RequestLicence 方法上执行方法。这两种方法非常相似。
Web服务中的方法:
[WebMethod]
public LYS.RegistryService.ProductResponse GetProduct(string productNo)
{
LYS.RegistryService.ProductResponse r = new LYS.RegistryService.ProductResponse();
return r;
}
我用来调用网络服务的代码
public ServiceResponseBase GetProduct(string productCode)
{
object obj = _WebServiceAssembly.CreateInstance("RegisteryService");
Type typ = obj.GetType();
object o = typ.InvokeMember(
"GetProduct",
System.Reflection.BindingFlags.InvokeMethod,
null, obj, new object[] { productCode });
return InstantiateObject<ProductResponse>(o);
}
上面的代码工作正常。这是我遇到错误的部分。
[WebMethod]
public LYS.RegistryService.ServiceResponse RequestLicence(LYS.BusinesObjects.Customer c, string productCode, bool isDemoLicence, bool isProductLicence)
{
LYS.RegistryService.ServiceResponse r = new LYS.RegistryService.ServiceResponse();
return r;
}
public ServiceResponseBase RequestLicence(LYS.BusinesObjects.Customer c, string productCode, bool isDemoLicence, bool isProductLicence)
{
object obj = _WebServiceAssembly.CreateInstance("RegisteryService");
Type typ = obj.GetType();
object o = typ.InvokeMember("RequestLicence", System.Reflection.BindingFlags.InvokeMethod, null, obj, new object[] { c, productCode, isDemoLicence, isProductLicence });
return InstantiateObject<ServiceResponse>(o);
}
我在以下位置获取方法未找到异常异常:
object o = typ.InvokeMember("RequestLicence", System.Reflection.BindingFlags.InvokeMethod, null, obj, new object[] { c, productCode, isDemoLicence, isProductLicence });
这两个函数非常相似,并且 Web 服务中这两个方法的返回类型来自相同的接口。所以做同样的工作会返回相同的对象,但一个正在工作,另一个没有。
有人可以帮助我吗?