一般我们调用一个类的方法,都是通过这个类本身(static方法)或者它的一个实例去调用.
比如:
Interface IService
{
void RunService(IContext context);
}
class ServiceA:IService
{
public override void RunService()//继承自接口
{
//实现
}
public ArrayList GetServiceList(IContext icxt)
{
//实现....
}
}
当你只能用IService来接收ServiceA的实例时,就无法调用它的GetServiceList()方法.
IService ser = new ServiceA();
这时就用另一种方法来调用:
//实例参数
IContext context = new Context(“username“);
object[] o=new object[1];
o[0]=context;
//
IService service = GetServiceFromOtherPlace(“ServiceA“);
//调用方法GetServiceList. Invoke()用来传递参数
service.GetType().GetMethod("GetServiceList").Invoke(service,o);
ArrayList list = (ArrayList) context.Response.GetValue("ServiceList");
这样也可以达到调用GetServiceList方法的目的.