关于C#反射机制,自己写的
2011-06-01 16:11
204 查看
以下代码是我的项目中拷贝出来的,已通过测试成功,代码如下:
因为项目需要,是利用动态加载DLL的方式,需要自定义配置窗体,所以新建一个类库,将窗体写在当中,然后实现抽象类用于调用,代码如下:
FrmMcuConfig就是需要调用的窗体,
用这个类库生成DLL,在主项目中进行调用,在调用前,程序先将dll文件放在程序启动目录下
调用代码如下:
成功调用
//首先建立一个抽象类,做为基类,试过用接口,但没有成功,所以放弃 //抽象类: public abstract class IMCU05SConfig { public abstract bool AddMcu(HJEquipType equiptype, ZHNode node); public abstract bool EditMcu(HJMCU mcu); }
因为项目需要,是利用动态加载DLL的方式,需要自定义配置窗体,所以新建一个类库,将窗体写在当中,然后实现抽象类用于调用,代码如下:
public class McuConfig : IMCU05SConfig { public override bool AddMcu(HJEquipType equiptype, ZHNode node) { FrmMcuConfig fmc = new FrmMcuConfig(); fmc.ShowDialog(); return true; } public override bool EditMcu(HJMCU mcu) { FrmMcuConfig fmc = new FrmMcuConfig(); fmc.ShowDialog(); return true; } }
FrmMcuConfig就是需要调用的窗体,
用这个类库生成DLL,在主项目中进行调用,在调用前,程序先将dll文件放在程序启动目录下
调用代码如下:
Assembly assembly = Assembly.LoadFile(Application.StartupPath + "\\" + fst.EquipType.ConfigDLL); Type[] types = assembly.GetTypes(); for (int i = 0; i < types.Length; i++) { if (types[i].IsSubclassOf(typeof(IMCU05SConfig))) { ConstructorInfo ci = types[i].GetConstructor(new Type[0]); IMCU05SConfig sport = (IMCU05SConfig)ci.Invoke(new Object[0]); bool b = sport.AddMcu(fst.EquipType, fsn.Node); return; } } MessageboxX.ShowError(fst.EquipType.EquipName + "类型的管理模块Dll文件引用错误!!请检查 " + fst.EquipType.EquipName + "设备类型"); return; }
成功调用
相关文章推荐
- 关于C#反射机制,来源于网络
- C#中关于反射机制的演示代码
- C#特性与反射机制
- C#反射机制
- 关于C# webservice的一些学习记录,供自己学习查阅.
- 【转载】C#反射机制详解
- .net关于反射加载机制问题
- C#中反射机制的理解
- C#的反射机制调用方法 推荐
- C#中反射机制的使用
- 关于Java语言中如何运用反射机制执行某个确定类的构造方法(一)
- 【C#】利用反射机制创建对象
- C#使用反射机制获取类信息[转]
- 利用C#的反射机制动态调用DLL类库
- 使用C#的反射机制时遇到的问题
- C# 反射机制(转)
- C# 反射机制
- C#_反射机制
- C#反射机制介绍
- C# 中利用反射机制拷贝类的字段和属性(拷贝一个类对象的所有东西付给另一个类对象,而不是付给引用地址)