BindingFlags.Instance。
binder
一个 Binder 对象,该对象定义一组属性并启用绑定,而绑定可能涉及选择重载方法、 强制参数类型和通过反射调用成 员。 - 或 - 若为空引用(Visual Basic 中为 Nothing),则使用 DefaultBinder。
target
要在其上调用指定成员的 Object。
args
包含传递给要调用的成员的参数的数组。
返回值
表示被调用成员的返回值的 Object。
二、插件编程
通过上面代码段,我们基本实现动态加载控件。由此我想到了现在网上提到很多的插件式的开发方法。通过动态加载控件,我们不是能很方便的为软件扩充功能吗?我不知道Eclipse这种插件是怎么实现的,但至少这种动态加载控件的方法实现插件编程的一个变通的方法。不是吗?我把一个功能模块做成一个控件,然后在程序启动是扫描目录,即可获得所有的控件,当点击菜单是,将控件加载到窗体就行了。我在母体程序里,我们所要做的只不过要一个容器窗口类来加载控件。当然,事先要有些约定,比如说,控件有哪些可供调用的方法等等。
参考资料:
1. (C#)利用反射动态调用类成员 作者: lizanhong
2. 在C#程序中实现插件架构 作者:Shawn Patrick Walcheske 译者:电子科技大学 夏桅
3. Building .NET Assemblies Dynamically 作者: Govinda
关键词:如何动态加载控件以及插件编程思想(C#)