日期:2014-05-17  浏览次数:21434 次

接口使用-动态创建实例obj,obj如何执行实例接口方法
通过Object obj=Activator.CreateInstance(type);
创建了一个实例A
实例A实现接口B
接口B中有方法C
obj要怎么执行C方法

需求:
想尝试写个自定义组件
组件包含子控件
子控件根据需求不同而不同
子控件实现统一接口
初始化组件并将子控件名传进去
组件动态创建子控件并执行接口方法
最终使组件满足各种需求

------解决方案--------------------
强转即可:

Object obj=Activator.CreateInstance(type);
InterFaceB b = (InterFaceB)obj;
b.C();

------解决方案--------------------
知道接口直接用
(obj As B).C();
不知道接口用反射
obj.GetMethod("C").Invoke(new object[] { });