zoukankan      html  css  js  c++  java
  • 第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特性,可指定其创建策略。代码如下:

    [csharp] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. [PartCreationPolicy(CreationPolicy.NonShared)]  
    2. [Export(typeof(UserControl))]  
    3. public partial class UserControlBB : UserControl  
    4. {  
    5.     public UserControlBB()  
    6.     {  
    7.         InitializeComponent();  
    8.     }  
    9. }  

    在导出部件的时候,可设置导入指定创建策略的部件,比如下面的代码,只导入创建策略为CreationPolicy.Shared的导出部件。

    [csharp] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. [ImportMany(RequiredCreationPolicy = CreationPolicy.Shared)]  
    2. public List<UserControl> UserControls { get; set; }   


    四、相关资源

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

  • 相关阅读:
    cmd常用指令
    python笔记01-05
    python安装过程中的一些问题
    初始化spring容器的一种方式
    切入点范式
    spring的list注入多个值
    Statement和PreparedStatement有什么区别?哪个效率高?
    sql 的四种隔离级别
    简单的spring核心配置文件编写
    spring
  • 原文地址:https://www.cnblogs.com/ExMan/p/5487224.html
Copyright © 2011-2022 走看看