1. 定义插件接口类,接口中定义需要的沟通方法

  2. 在组件中某类继承该插件接口,实现方法

  3. 实现

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //加载组件DLL
    Assembly ab = Assembly.LoadFrom(file);
    Type[] types = ab.GetTypes();
    foreach (Type t in types)
    {
    //如果某些类实现了预定义的插件接口,则认为该类适配与主程序(是主程序的插件)
    if (t.GetInterface("预定义的插件接口")!=null)
    {
    object o = ab.CreateInstance(t.FullName);//创建该类实例
    MethodInfo method = t.GetMethod("方法名");//获得该类某方法
    object returnValue = method.Invoke(实例名, 函数参数)//调用该方法
    }
    }