您好,登录后才能下订单哦!
这篇文章将为大家详细讲解有关C# 中如何使用MEF插件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
MEF简介
MEF,全称Managed Extensibility Framework(托管可扩展框架)。单从名字我们不难发现:MEF是专门致力于解决扩展性问题的框架,MSDN中对MEF有这样一段说明:
Managed Extensibility Framework 或 MEF 是一个用于创建可扩展的轻型应用程序的库。 应用程序开发人员可利用该库发现并使用扩展,而无需进行配置。 扩展开发人员还可以利用该库轻松地封装代码,避免生成脆弱的硬依赖项。 通过 MEF,不仅可以在应用程序内重用扩展,还可以在应用程序之间重用扩展。
开始编码
我们新建一个桌面应用程序项目起名为MefDemo
在Form1下面增加一个MenuStrip,改名为ms
不用加任何项,我们到时候进行动态加载
在解决方案里右键添加新建项目选择类库
这个类库用来实现插件的接口
建好后在里面增加一个类起名为IPlugin
定义了接口,里面一个是字符串类型Text,还有一个方法是DO;然后我们增加插入时继承接口即可
然后返回主程序里面的Form里声明我们的接口
然后我们写窗体调用加载插件的初始化方法
读完插件后加载到MenuStrip控件中用于显示出来的方法
构造函数里面直接初始化Init(),这样在在Form_Load里面就会加载到控件中显示了
主窗体的代码这就完成了
插件编写
我们在解决方法里面再新建三个类库,为别叫Plugin1,Plugin2,Plugin3
Plugin1
插件里面的Text 和Do()就是实现接口的对应方法,我们在plugin1里面定义为插件1, DO的方法实现弹出窗体显示插件1中文
Plugin2
和插件1相同,只不过名称不同
Plugin3
插件三里面除了实现的接口类,又增加了一个窗体Form1
然后我们在MyPlugin3里面写入接口的实现方法
可以看到Do里面是直接显示Form1
Form1里面增加了一个Button
Button的事件就是弹出窗体显示我是插件3
这样代码就完后实现了,编译完成后我们把三个插件的DLL放到运行目录下的plugin下面
关于C# 中如何使用MEF插件就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。