当前位置:网站首页>第06篇 MEF部件的生命周期(PartCreationPolicy)
第06篇 MEF部件的生命周期(PartCreationPolicy)
2022-08-08 20:55:00 【光脚丫思考】
一、演示概述
本演示介绍了MEF的生命周期管理,重点介绍了导出部件的三种创建策略,分别是:CreationPolicy.Any、CreationPolicy.Shared、CreationPolicy.NonShared。相关下载(屏幕录像): http://yunpan.cn/cjZEXHY8N3D6z 访问密码 3912
温馨提示:如果屏幕录像和代码不能正常下载,可站内留言,或发邮件到[email protected]
欢迎有兴趣研究.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
边栏推荐
猜你喜欢
随机推荐
keras调用load_model时报错ValueError: Unknown layer:*解决办法
fashion CNNs code
实践篇1:深度学习之----LetNet之tensorflow2的实现
门外汉掌握数据分析处理技术的路线图
CSP-J2021 题解
Mendix:企业成功执行数字化转型的9个因素
手机投影到deepin
简单Swing界面笔记
rust-异常机制
Notes: The difference between laravel, updateOrCreate and updateOrInsert
单片机——串口通信(从串口接收多位数据保存到数组,发送多位数据到串口)
phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)
WPF主窗体调用 User32的SetWindowPos 设置窗体置顶会导致与其他窗体抢夺焦点的问题
并发和并行——从线程,线程池到任务
阿里云OSS文件下载到本地指定文件有坑
Little knowledge about KotlinAndroid encounters
跨域问题 什么时候出现跨域问题 如何解决跨域问题
头脑风暴:打家劫舍2
安装sentry
Kotlin实用的一些框架