本帖最后由 pengwei0417 于 2014-07-25 22:03:24 编辑

解决方案 »

  1.   

    你可以做一个链表做一个配置文件 ,把 XML 和 DLL 的对应关系写进去然后程序启动的时候,加载配置文件写入链表中有调用的时候就去遍历链表特征值可以用字符串之类的都可以,唯一的ID 就行了
      

  2.   

    不要写 object tmpobj = ass.CreateInstance("dll.Class1"); //创建程序集中类的实例
    这种代码,应该写IMyRule tmpobj = (IMyRule)ass.CreateInstance("dll.Class1"); //创建程序集中类的实例
    这样的代码。这个代码之后,你的程序都是强类型编程的,编译器可以检查出设计错误,而不是等程序运行几百遍、运行到某些数据时才在用户面前崩溃,甚至根本无法方便调试。这个代码之后,你不再需要反射,不需要什么乱七八糟的“getMethod、getEvent”之类的代码。你的代码应该针对“规则接口”编程,而不是针对空洞的 object 编程。
      

  3.   


    你的这个业务接口设计,就需要用可执行的接口来表达出来。真正了解反射的人,不会滥用反射。在你执行 Activetor.CreateInstance 代码以后,你就不应该再去反射了。
      

  4.   

    非常感谢你您的帮助,看的出来,您是专业的。因为本人不是计算机专业的,纯业余选手,所以不懂的地方很多,IMyRule这里如何理解,另外“就需要用可执行的接口来表达出来”,太专业了,实在是不懂,还望详细拆解。