我已经在Stackoverflow上阅读了很多关于如何使用MEF和MEF的帖子以及那些链接,我没有在所有问题中找到答案,搜索互联网是如何创建插件的MEF可以从管理员设置页面打开,关闭,安装和卸载。
我正在尝试为MVC创建自己的CMS,并希望将MEF用作我的插件框架的一部分。
只需要知道如何以编程方式安装,卸载,打开和关闭为MEF制作的插件。
考虑编写“插件”以使用MEF,然后将其打包到Nuget中,可以从管理员设置页面安装和卸载它。
Nuget将负责安装和卸载
MEF负责注册插件,有些人可以选择打开和关闭插件。
示例情况:
用户安装CMS
用户进入管理部门 - >插件
用户可以看到他们可以安装并用于CMS的插件列表
用户点击“安装”,MEF插件已安装到CMS中
用户点击“开启”,MEF插件已准备好供系统使用
用户想暂时关闭插件,用户点击“关闭”
用户不再需要插件并点击“卸载”,插件将完全从CMS系统中删除。
用户意识到他们意外删除了错误的插件,用户再次点击“安装”。
目标是能够从管理员设置类型的页面控制插件能够安装,卸载,打开和关闭,这将是CMS中的一个很棒的功能。
我知道其他CMS使用这种类型的函数作为他们的插件,但不知道任何使用MEF作为其框架的一部分来执行此操作。
大多数人使用他们自己的内部插件框架来实现这些功能。
我希望能够使用MEF框架来帮助实现这一目标。
另一个目标是基本上有一个系统,其中针对MEF并在Nuget中打包的“插件”基本上可以托管在像Nuget.org这样的地方。
在Nuget Package中,使用MEF“插件”所需的一切都包含在Nuget包中。
但是,因为它正在使用MEF,所以这个包在技术上只能包含1个DLL,当用户安装Nuget包时,MEF会在他们的网站上注册dll。
示例可以是博客,在包中它包含所需的一切。
用户访问Visual Studio安装Nuget Package“Blog”并安装1个dll,其中包含所需的一切。
MEF将在用户网站上注册该软件包,就是这样。
用户方没有任何配置或任何内容。
从Nuget拉取并安装即可:)
谢谢,
Brian Davis