程序员人生 网站导航

第06篇 MEF部件的生命周期(PartCreationPolicy)

栏目:框架设计时间:2015-05-08 08:01:14


1、演示概述

本演示介绍了MEF的生命周期管理,重点介绍了导出部件的3种创建策略,分别是:CreationPolicy.Any、CreationPolicy.Shared、CreationPolicy.NonShared。
相干下载(屏幕录相):http://yunpan.cn/cjZEXHY8N3D6z  访问密码 3912
温馨提示:如果屏幕录相和代码不能正常下载,可站内留言,或发邮件到524130780@QQ.COM

欢迎有兴趣研究.NET相干技术的网友加QQ群:18507443

2、部件创建策略简介
MEF提供的导出部件的3种创建策略,分别以下:
CreationPolicy.Any:表示可同享或不同享,部件的实例用MEF容器根据不同的要求需求自动控制。
CreationPolicy.Shared表示同享部件,既Shared类型的插件部件可以在多个MEF组合容器中共用,而且屡次要求该部件返回的实际上是同1个对象。
CreationPolicy.NonShared类型,表示不同享部件实例,每当有新的要求就会创建1个新的对象实例。

3、关键代码
下面介绍了如何在导出部件中设置其创建策略,和导入的时候如何使用。
通过为导出部件添加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; }

4、相干资源

1、MSDN官方资料:http://msdn.microsoft.com/zh-cn/library/dd460648(v=vs.110).aspx



------分隔线----------------------------
------分隔线----------------------------

最新技术推荐