花了半天时间,终于弄懂了C#如何现实动态加载插件的。就像photoshop一样只要在plugin里面丢几个dll就可以多一个滤镜。
总体思路必将简单
1.必须定义公共接口规范,说白点就是主程序在调用插件时会用到方法、属性、函数等等。有点类似于组织架构的岗位名称,岗位是固定的,任职要求(参数)也是固定的,只是人不一样而已。
实现方法:
新建一个类库
namespace MainPlug
{
public interface IMainPlug
{
void strat(string buttonname);
string F();
}
}
完了F5生产DLL
2.做插件,也很简单
新建一个类库,添加刚刚生成的DLL,本例为MainPlug.DLL
using System;
using System.Text;
using MainPlug;
using System.Windows.Forms;
namespace Plug1
{
public class myplug1 : Form, IMainPlug
{
public void strat(string buttonname)
{
Form f1 = new Form();