第06篇 MEF部件的生命周期(PartCreationPolicy)
一、演示概述
本演示介绍了MEF的生命周期管理,重点介绍了导出部件的三种创建策略,分别是:CreationPolicy.Any、CreationPolicy.Shared、CreationPolicy.NonShared。
相关下载(屏幕录像):http://yunpan.cn/cjZEXHY8N3D6z 访问密码 3912
温馨提示:如果屏幕录像和代码不能正常下载,可站内留言,或发邮件到524130780@QQ.COM
欢迎有兴趣研究.NET相关技术的网友加QQ群:18507443
二、部件创建策略简介
MEF提供的导出部件的三种创建策略,分别如下:
CreationPolicy.Any:表示可共享或不共享,部件的实例用MEF容器根据不同的请求需求自动控制。
CreationPolicy.Shared表示共享部件,既Shared类型的插件部件可以在多个MEF组合容器中共用,而且多次请求该部件返回的其实是同一个对象。
CreationPolicy.NonShared类型,表示不共享部件实例,每当有新的请求就会创建一个新的对象实例。
三、关键代码
下面介绍了如何在导出部件中设置其创建策略,以及导入的时候如何使用。
通过为导出部件添加PartCreationPolicyAttribute特性,可指定其创建策略。代码如下:
- [PartCreationPolicy(CreationPolicy.NonShared)]
- [Export(typeof(UserControl))]
- public partial class UserControlBB : UserControl
- {
- public UserControlBB()
- {
- InitializeComponent();
- }
- }
在导出部件的时候,可设置导入指定创建策略的部件,比如下面的代码,只导入创建策略为CreationPolicy.Shared的导出部件。
- [ImportMany(RequiredCreationPolicy = CreationPolicy.Shared)]
- public List<UserControl> UserControls { get; set; }
四、相关资源
1、MSDN官方资料:http://msdn.microsoft.com/zh-cn/library/dd460648(v=vs.110).aspx
第06篇 MEF部件的生命周期(PartCreationPolicy)的更多相关文章
- MEF部件的生命周期(PartCreationPolicy)
一.演示概述 本演示介绍了MEF的生命周期管理,重点介绍了导出部件的三种创建策略,分别是:CreationPolicy.Any.CreationPolicy.Shared.CreationPolicy ...
- iOS系列 基础篇 03 探究应用生命周期
iOS系列 基础篇 03 探究应用生命周期 目录: 1. 非运行状态 - 应用启动场景 2. 点击Home键 - 应用退出场景 3. 挂起重新运行场景 4. 内存清除 - 应用终止场景 5. 结尾 本 ...
- iOS系列 基础篇 04 探究视图生命周期
iOS系列 基础篇 04 探究视图生命周期 视图是应用的一个重要的组成部份,功能的实现与其息息相关,而视图控制器控制着视图,其重要性在整个应用中不言而喻. 以视图的四种状态为基础,我们来系统了解一下视 ...
- 【转】Android总结篇系列:Activity生命周期
[转]Android总结篇系列:Activity生命周期 Android官方文档和其他不少资料都对Activity生命周期进行了详细介绍,在结合资料和项目开发过程中遇到的问题,本文将对Activity ...
- 基础总结篇之一:Activity生命周期[转]
from:http://blog.csdn.net/liuhe688/article/details/6733407 基础总结篇之一:Activity生命周期 子曰:溫故而知新,可以為師矣.< ...
- MEF 生命周期PartCreationPolicy
为什么要单独把这个生命周期捞出来单独说一说呢?因为我今天就被这个东东坑了一把……新加了一个界面,第二次打开界面的时候会报错“指定的元素已经是另一个元素的逻辑子元素”.好嘛,我一看,哟,感觉就是xaml ...
- 基础总结篇之一:Activity生命周期
子曰:溫故而知新,可以為師矣.<論語> 学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就完全掌握,那基本不大可能,所以我们需要经常回过头再仔细研读几遍,以领悟到作者的思想精 ...
- 转:基础总结篇之一:Activity生命周期
熟悉javaEE的朋友们都了解servlet技术,我们想要实现一个自己的servlet,需要继承相应的基类,重写它的方法,这些方法会在合适的时间被servlet容器调用.其实android中的Acti ...
- [转]基础总结篇之一:Activity生命周期
子曰:溫故而知新,可以為師矣.<論語> 学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就完全掌握,那基本不大可能,所以我们需要经常回过头再仔细研读几遍,以领悟到作者的思 ...
随机推荐
- 设计模式--装饰模式C++实现
装饰模式C++实现 1定义 动态地给一个对象添加一些额外的职责.就增加功能来说,装饰模式比生成子类更加灵活.可作为继承的替代 2类图 3实现 //构件 class Component { protec ...
- bzo1016: [JSOI2008]最小生成树计数
现在给出了一个简单无向加权图.你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树.(如果两颗最小生成树中至少有一条边不同,则这两个最小生成树就是不同的).由于不同的最小生成树 ...
- 我的json
{ "firstName":[ "xMan" ], "members":[ { "name":"X教授&quo ...
- CSU-1307-二分+dij
1307: City Tour Submit Page Summary Time Limit: 1 Sec Memory Limit: 128 Mb Submitted: 59 ...
- 【转】linux 新建用户、用户组 以及为新用户分配权限
Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面可以帮助系统管理员对使用系统的用户进行 ...
- MySQL学习(二): 数据类型记录
整形: 浮点型: 日期时间:(使用较少,可能存在跨区域问题) 字符型: CHAR(M):定长,会将位数补充到M位 VARCHAR(M):非定长,最多到达M位 ENUM('v1','v2',...):从 ...
- H.264采集、编码、传输的流程
转载自H.264采集.编码.传输的流程 1 采集到的原始数据放入buf中 2 转化为yuv格式放入yuv conv.RGB24_to_YV12(buf, yuv,IMAGE_WIDTH, IMAGE_ ...
- Tornado 异步非阻塞
1 装饰器 + Future 从而实现Tornado的异步非阻塞 class AsyncHandler(tornado.web.RequestHandler): @gen.coroutine def ...
- C# OPC UA服务器 OPC UA网关 三菱 西门子 欧姆龙 Modbus转OPC UA 服务器 可配置的OPC UA服务器网关 HslSharp软件文档
前言 本文将使用一个基于开源项目HslCommunication创建的OPC UA网关,方便通过配置创建一个OPC UA的网关中心.具体的操作及支持的设备信息项目参照下面: 开源项目HslCommun ...
- gulp使用 实现文件修改实时刷新
gulp例子:https://github.com/Aquarius1993/gulpDemo 淘宝镜像:$ npm install -g cnpm --registry=https://regist ...