zoukankan      html  css  js  c++  java
  • 在C#中实现插件编程


    在程序写好后,我们如果要不断的升级程序的功能的话,用以前的思想来写程序的话,办法就只有不断的添加、更改主程序的代码,难道就没有其他的办法了吗?答案是肯定有的。那么怎么实现呢?——插件!
    对,就是插件,就好像我们的Eclipse,那就是用插件“搭”出来的程序,利用插件,我们可以很方便的对程序的功能进行添加、修改、而不用重编译整个工程,这个就是利用插件技术的好处!下面写出我在实际开发中利用到的一些方法,我将它们整理了一下,供大家看。。。。(这里只是动态加载一个类的例子!其他的程序集以此类推!)

    /********************************* 主程序 *****************************/
       // 加载类所在的程序集
       Assembly assembly = Assembly.LoadFrom("C:\\maxun\\Test.dll");
       Type type = assembly.GetType("Test.OutString");
       // 得到指定的方法
       MethodInfo met = type.GetMethod("OutSuccess");
       // 创建实例
       Object obj=System.Activator.CreateInstance(type);
       // 调用方法
       string strResult = (string)met.Invoke(obj, null);

       // 如果这个方法有参数的话,可以用以下的方法实现
       /*
       Object[] objArray=new object[7];
       objArray[0]="参数1";
       objArray[1]="参数2";
       objArray[2]="参数3";
       …………
       
       *** Result = (***)met.Invoke(obj, objArray);
       */
    /********************************* 类代码 *****************************/
    using System;

    namespace Test
    {
     public class OutString
     {
      public OutString()
      {
      }

      public string OutSuccess()
      {
       return("SUCCESS:)");
      }
     }
    }
    /****************************运行结果***************************/


  • 相关阅读:
    js 判断图片是否加载完成
    js检测密码强度
    javascript 的MD5代码备份,跟java互通
    JavaScript实现限时抢购实例
    JS日期比较大小 给定时间和持续时间计算最终时间
    jquery与json的结合
    div内容过长自动省略号
    高并发大流量专题---11、Web服务器的负载均衡
    如何利用nginx实现负载均衡(总结)
    高并发大流量专题---10、MySQL数据库层的优化
  • 原文地址:https://www.cnblogs.com/chorrysky/p/526602.html
Copyright © 2011-2022 走看看