この質問が割り当てられていることは知っていますが、どこが間違っているのかわかりません。リフレクションを使用して、Web サービスの GetProduct および RequestLicence メソッドでメソッドを実行しています。これら 2 つの方法は非常に似ています。
Web サービスのメソッド:
[WebMethod]
public LYS.RegistryService.ProductResponse GetProduct(string productNo)
{
LYS.RegistryService.ProductResponse r = new LYS.RegistryService.ProductResponse();
return r;
}
Webサービスを呼び出すために使用しているコード
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 });
これら 2 つの関数は非常に似ており、Web サービスでこれら 2 つのメソッドが返す型は同じインターフェイスから派生しています。したがって、同じオブジェクトを返す同じ作業を行っていますが、一方は機能していますが、もう一方は機能していません。
誰でも私を助けることができますか?