一般我们调用一个类的方法,都是通过这个类本身(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方法的目的.
博客介绍了调用类方法的常规方式,即通过类本身或其实例调用。还阐述了当只能用接口接收类实例,无法直接调用类特定方法时的解决办法,通过Invoke()传递参数来调用方法,以达到调用特定方法的目的。
1万+

被折叠的 条评论
为什么被折叠?



