调用方法的另一种方式

一般我们调用一个类的方法,都是通过这个类本身(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方法的目的.

你可能感兴趣的:(方法)