MEF(Managed Extensibility Framework )的入门介绍

1、什么是MEF

MEF是一个来自于微软协作构建扩展应用的新框架,它的目的是在运行中的应用中添加插件。MEF继承于.NET 4.0 Framework平台,存在于各种应用平台的系统程序集中

2、程序集

System.ComponentModel.Composition.dll

3、关键结构

Import

Export

Compose

4、相关知识

Part:一个对象,能导入或者导出与应用程序

Catalog:一个对象,帮助在程序集或者文件夹中查找有效的构建部件

Contract:导入和导出部分需要通过契约来交流

Import Attribte:定义了一个部分的需要。他应用单个Export Attriute

ImportMany Attribute:和Import属性相似,但是支持多个Export Attriutes

Export Attribute:创建导入就需要创建导出,他作为构建插件的参与者

Compose:将Exported与Import对应集成

5、一个简单的例子,仅仅使用单个Export部件在当前程序集中

6、一个简单的例子,使用多个Export部件在当前程序集中

7、一个简单的例子,使用多个Export部件在集成目录和文件夹目录中

说明:5、6、7的代码 MEFDemo.rar

MEF(Managed Extensibility Framework )的入门介绍

时间: 2024-07-30 16:52:39

MEF(Managed Extensibility Framework )的入门介绍的相关文章

MEF(Managed Extensibility Framework)使用全部扩展组件

MEF(Managed Extensibility Framework),所在命名空间是System.ComponentModel.Composition.dll.简单来说,MEF是将符合约定(一般是实现接口)的组件的Parts(类.方法和属性可看作是Part)标记为Export特性,再把这些组件放到与可执行程序同目录的Extensions文件夹中,最后通过把Part标记为Import来引用这些组件,从而为我们创建可扩展组件提供了方便. 以球员踢球为例,体验MEF的工作原理和便捷之处. ● He

MEF(Managed Extensibility Framework)有选择性地使用扩展组件

在"MEF(Managed Extensibility Framework)使用全部扩展组件"中,客户端应用程序调用了所有的扩展组件,而且如果有新的扩展组件加入,必须先关闭程序,再重新启动才可以调用所有组件. 本篇体验使用MEF的ExportMetadata特性,有选择性地使用某些扩展组件,使用Lazy<>,让客户端程序延迟动态加载组件,即使不关闭应用程序,也能调用所有组件. ● StudentMEF.Lib, 类库,包含接口IStudent.cs ● StudentMEF

.Net4下的MEF(Managed Extensibility Framework) 架构简介

转载自 http://zhoujg.blog.51cto.com/1281471/519269 在上篇WPF -.Net 4.0解决了DataGrid分组时的内存泄露中说过由于内存泄露问题,OpenExpressApp升级到.Net4平台,然后升级后之前的compositewpf出了点问题.在OpenExpressApp考虑动态扩展组件机制方面,以前就考虑过MEF,但当时还不成熟,所以使用了compositewpf,而现在MEF已经成为了.Net第一公民,compositewpf又没有提供.Ne

MEF(Managed Extensibility FrameWork) API

作用:创建可扩展的轻量级应用程序的库.可以让扩展在程序内重复使用,还可以跨程序重复使用. 导出Export:把部件放到容器中,供其它部件使用. 导入Import:把部件从容器中拿出来使用. 导入和导出必须具有相同的约定:协定类型参数   &&  协定名称参数 隐式协定:协定类型参数和协定名称参数将从修饰的属性推断而出. 导出的类型必须与协定类型相同.派生自协定类型,或者实现协定类型接口. public class MyClass { [Import] public IMyAddin MyA

Managed Extensibility Framework (MEF)

http://msdn.microsoft.com/zh-cn/library/dd460648(v=vs.110).aspx [.NET] 浅谈可扩展性框架:MEF

Android入门介绍

Android入门介绍 3G.4G 第三代移动通信技术(3rd - Generation),速率一般在几百Kbps,较之前的2G和2.5G在数据传输速度上有很大提升. 第四代移动通信技术(4th - Generation),速度可达到100Mbps以上,几乎可以满足人们的所有传输数据的需求. 目前主流的3G技术标准有三种: WCDMA:全球80%以上的3G网络都是采用此种制式.中国联通运营.186 CDMA2000:目前日韩及北美使用较多.中国电信运营. 189 TD-SCDMA:中国自主知识产

ASP.NET MVC 入门介绍 (上)

1. MVC模式 MVC模式是一种软件架构模式.它把软件系统分为三个部分:模型(Model),视图(View)和控制器(Controller).MVC模式最早由Trygve Reenskaug在1974年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发 明的一种软件设计模式.MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能.除此之外,此 模式通过对复杂度的简化,使程序结构更加直观.软件

Robot Framework 快速入门

Robot Framework 快速入门 目录 介绍 概述 安装 运行demo 介绍样例应用程序 测试用例 第一个测试用例 高级别测试用例 数据驱动测试用例 关键词keywords 内置关键词 库关键词 用户定义关键词 变量 定义变量 使用变量 组织测试用例 测试套件 启动和卸载 使用标签 创建测试库 介绍概述 Robot Framework 是一个关键词驱动的自动测试框架.测试用例位于HTML或者TSV(以tab分隔值)文件,使用在测试库中实现的关键词来在测试中运行程序.因为Robot Fra

入门介绍

入门介绍 什么是框架,Python都有什么框架 Web应用框架(Web application framework)是一种开发框架,用来支持动态网站.网络应用程序及网络服务的开发.(摘自 百度百科) 基于python的web框架可以算得上是百花齐放,各种的框架和微框架数不胜数,所以关于哪个框架的好与不好,优与不优争论一直不休.到底哪个框架好,这需要结合你的项目需求以及后期维护和扩展都有很大的关系.python主流的框架有 Django,Flask,Pyramid,Bottle,Tornado,W