MEF技术】的更多相关文章

MEF 是一个使开发人员能够创建“插件式应用程序”的技术,这里的“插件”是指在应用程序部署后开发人员能够通过开发“插件”来扩展应用程序功能.但不同之处是使用MEF框架您在系统设计阶段不需要考虑在应用程序部署后可能会有什么插件,MEF可以自动搜索这些插件.这也是为什么会叫他Managed Extensibility Framework. 一个简单的MEF示例, 假设系统中有如下需求 支付功能: 用户可以选择多种支付方式进行支付如支付宝,网银在线,财付通等等. 1. 定义支付接口及支付请求数据结构…
菜单管控模块EntityFW 菜单的加载采用MEF技术,程序实现思路: 1 .主菜单加载页面MainMenuView.xaml指向MenuRegion 2. 菜单Item点击及内容加载,采用订阅模式,即菜单item点击时发布消息,shell负责订阅并过滤加载子模块 MainMenuView.xaml <UserControl x:Class="EntityFW.Views.MainMenuView"       xmlns="http://schemas.microso…
转摘 https://www.cnblogs.com/niceWk/archive/2010/07/21/1782092.html 偷梁换柱 上一篇我们初试了DynamicAspect这把小刀,如果你已经下了源代码,你可以看看它在后台究竟做了什么手脚.如果你接触过一些动态的AOP组件,你也许已经发现大部分的实现都是在运行时通过反射机制重新创建一个代理对象或者装饰对象和适配器对象,其目的只有一个,把对目标方法的掉用转移到一个新建的方法上,所以DynamicAspect也不例外,那既然这样,你会问为…
引言:什么是Caliburn ? 一个夜晚,一处教堂,人们忏悔结束后抬头看到一把宝剑插在一块石头上.石上字述“英格兰人,凡能从石头上拔出剑者,为王者!”,Caliburn就是英格兰人心中的石中剑,这把剑的主人是亚瑟王,但是在一次格斗中,这把剑被伯林诺王斩断. Caliburn用于一个MVVM产品的名称,其用意明显,作者是想借助于Caliburn的“锋利”来描述这个产品. Caliburn是一个功能全面的MVVM产品,全面的同时带来了代码量的庞大,作者在这个基础上做了一个精简版,名为 Calibu…
最近在写一篇关于如何扩展 Visual Studio 编辑器的文章时,用到了 MEF,因此打算写一篇文章提一下这个技术点.本篇文章并不打算详细介绍 MEF,只是一个最简单的入门,相信您在阅读本篇文章后,可以迅速开发出一个可扩展的应用程序. 简 介 MEF(Managed Extensibility Framework),是微软推出的一款用于搭建可扩展应用程序的框架,起初是独立于 .Net 发布的,后来集成到了 .Net 4.0 中.使用该框架可以非常轻松地扩展一个已发布的应用程序的功能,连 Vi…
若干年前,老周写了几篇有关MEF的烂文,简单地说,MEF是一种动态扩展技术,比如可以指定以某个程序集或某个目录为搜索范围,应用程序在运行时会自动搜索符合条件的类型,并自动完成导入,这样做的好处是,主程序的代码不用改来改去,只需要把扩展的程序集放到对应的目录下就可以了. MEF不仅可以用于“看不见”的类型扩展上,对于“看得见”的类型照样适用,比如窗口.控件之属,你要是够牛逼的话,甚至可以把它用到ASP.NET上,不过这个玩意儿估计要配合重写路由规则才能实现,根据URL传的参数来跳转到具体的页面.…
偶然在博客园中了解到这种技术,顺便学习了几天. 以下是搜索到一些比较好的博文供参考: MEF核心笔记 <MEF程序设计指南>博文汇总 先上效果图 一.新建解决方案 开始新建一个解决方案Mef,再添加一个winform项目为:MefDemo 如图: 打开Form1窗口,拉入MenuStrip菜单控件,把name改名为"ms",菜单控件什么菜单都不加,如下图: 接着双击窗口写如下代码: private void Form1_Load(object sender, EventAr…
IOC能做什么 IoC 不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合.更优良的程序. 控制反转: 将控制权移交给第三方容器  new 操作 依赖注入: 在程序的运行过程中 动态的给某个对象 注入他所需要的 实例   例子:模拟一个用户购买了一个音乐播放器 用户类 public class User { //初始化一个音乐播放器 public MusicPlayer Playe = new MusicPlayer(); public void Play()…
在前面的文章中,几乎每个示例我们都会接触到扩展类的搜索位置,我们也不妨想一下,既然是自动扩展,它肯定会有一个或者多人可供查找的位置,不然MEF框架怎么知道哪里有扩展组件呢? 就像我们用导航系统去查找某个地方的所有旅店一样,正因为在该地的旅店已在数据库中注册了相关信息,我们的导航系统才能查找到它,如果某家旅店没有向导航数据库提供任何数据,那很显然导航系统是无法识别到它的详细地址的. MEF对扩展组件的查找范围通常有三个: AssemblyCatalog:从某个程序集中查找. Application…
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.MEF框架简介 MEF的全称是Managed Extensibility Framework(MEF),其是.net4.0的组成部分,在3.5上也可以使用.熟悉java中的spring框架的人,对这个框架中涉及的几个概念应该会比较容易理解. 这里我先把我两年多前的一个完整的利用MEF搭建的插件式系统中涉及到的MEF框架里的几个基本概念大致描述下. 1.1 依赖注入…