在文章开始之前,首先简单介绍一下什么是MEF,MEF,全称Managed Extensibility Framework(托管可扩展框架)。单从名字我们不难发现:MEF是专门致力于解决扩展性问题的框架,MSDN中对MEF有这样一段说明: Managed Extensibility Framework ...
上一篇学习完了MEF的基础知识,编写了一个简单的DEMO,接下来接着上篇的内容继续学习,如果没有看过上一篇的内容, 请阅读:http://www.cnblogs.com/yunfeifei/p/3922668.html。 下面我们来主要讲解一下MEF中的导入和导出,还是上一篇的代码(这篇中,我还会贴 ...
上一片介绍了Primitive层,Attribute Model可以认为是对Primitive的上层实现。主要包括如下内容: 1. 一系列的Attribute来定义Import和Export 常用的有如下Attribute:Export,InheritedExport,Import,ImportCo ...
分类:
其他好文 时间:
2017-10-29 15:14:20
阅读次数:
145
用了很久的MEF框架来做依赖注入,最近想把它的原理和机构总结一下,主要包括如下几个方面: 1. 总体架构 2. .Net Composition Primitive 3. Attribute Model Programing/Life cycle 4. Container/Recomposition ...
分类:
其他好文 时间:
2017-10-29 15:13:42
阅读次数:
194
Primitive层是属于依赖注入的通用模型,主要有如下核心类型: 1. ComposablePart是核心类,他表示组件容器中的每一个组件,是对真正组件实例的包装。ExportDefinition属性定义了该组件对外提供的功能描述。ImportDefinition属性定义了该组件对别的组件的依赖。 ...
分类:
其他好文 时间:
2017-10-29 15:13:09
阅读次数:
195
通过AttributeedModelPrograming,我们可以声明暴露组件,依赖组件,发现组件,但是所有这些需要有一个触发点。即需要把所有这些组合在一起来协同工作,最终实现依赖注入。这就是Container层所做的事情. CompositionContainer CompositionConta ...
分类:
其他好文 时间:
2017-10-29 15:12:24
阅读次数:
186
1,到底有哪些开源MVVM框架? 前面介绍了WPF的基本概念和一些相关知识,我们了解到开发WPF应用程序可以使用现成的框架和模式,最为合适的莫过于时下正热的MVVM模式,所以这里我们也列出针对MVVM模式的已有开源框架: 图3 上面除了WPFToolKit和MEF之外都是一些常用的MVVM框架,连带 ...
MEF(Managed Extensibility Framework)是.NET Framework 4.0一个重要的库,Visual Studio 2010 Code Editor的扩展支持也是基于MEF构建的。MEF的目标是简化创建可扩展的应用程序,其核心类是ComposablePart,即具 ...
分类:
Web程序 时间:
2017-05-20 12:24:57
阅读次数:
240
MEF中使用导出与导入,实质上就是对一个对象的实例化的过程,通过MEF的特性降低了对象的直接依赖,从而让系统的设计达到一种高灵活、高扩展性的效果。在具体的设计开发中,存在着某些对象是不需要在系统运行或者的附属对象初始化的时候进行实例化的,仅仅只需要在需要使用到他的时候才会进行实例化,从系统的上来说这 ...
分类:
Web程序 时间:
2017-04-05 13:03:49
阅读次数:
299
在上一篇(VS2010 Extension (1)实践)里,主要展示了如何使用MEF扩展VS2010,来扩展编辑控制和展现自己的UI;在实现QuickToolbar的时候,发现MEF仅仅提供了很基本的编辑控制,如果需要高级的操作,比如注释选择的代码,就捉襟见肘,很是麻烦。 本篇我将展示如何深入挖掘V ...
分类:
其他好文 时间:
2017-04-03 23:58:06
阅读次数:
291