MEF学习笔记(5):迟延加载导出部件
2012-05-08 22:22
197 查看
迟延加载导出部件
MEF中使用导出与导入,实质上就是对一个对象的实例化的过程,通过MEF的特性降低了对象的直接依赖,从而让系统的设计达到一种高灵活、高扩展性的效果。在具体的设计开发中,存在着某些对象是不需要在系统运行或者的附属对象初始化的时候进行实例化的,仅仅只需要在需要使用到他的时候才会进行实例化,从系统的上来说这也是提高系统性能的一种可行的实现方式,这种方式就可以理解为对象的迟延初始化,或者叫迟延加载。MEF也对此使用场景提供了完善的实现机制,下面来看看在MEF中的迟延初始化是如何使用的。为了使用它,我们所需要做的是导入使用[System.Lazy<T>]来直接代替[T]。例如,思考一下下面的代码段public class HttpServerHealthMonitor { [Import] public IMessageSender Sender { get; set; }
上面的导入代码说明它依赖于一个契约(IMessageSender)实现。当MEF提供这种依赖性,它也需要创建IMessageSender去选定和递归可能的实现。
为了使这个导入实现迟延加载,你只需要用Lazy<IMessageSender>替换它就行了。
[Export] public class HttpServerHealthMonitor { [Import] public Lazy<IMessageSender> Sender { get; set; }
在这个例子里,你可以选择性去迟延实例化,直到你真的想去实现实例。想要请求实例,使用[Lazy<T>.Value].属性。
相关文章推荐
- MEF:迟延(Lazy)加载导出部件(Export Part)与元数据(Metadata)
- MEF程序设计指南五:迟延(Lazy)加载导出部件(Export Part)与元数据(Metadata) 推荐
- MEF程序设计指南五:迟延(Lazy)加载导出部件(Export Part)与元数据(Metadata)
- MEF程序设计指南五:迟延(Lazy)加载导出部件(Export Part)与元数据(Metadata)
- 【转】MEF程序设计指南五:迟延(Lazy)加载导出部件(Export Part)与元数据(Metadata)
- MEF程序设计指南五:迟延(Lazy)加载导出部件(Export Part)与元数据(Metadata)
- MEF程序设计指南五:迟延(Lazy)加载导出部件(Export Part)与元数据(Metadata)
- 【转】MEF程序设计指南五:迟延(Lazy)加载导出部件(Export Part)与元数据(Metadata)
- C#可扩展编程之MEF学习笔记(二):MEF的导出(Export)和导入(Import)
- [MEF]第03篇 MEF延迟加载导出部件及元数据
- C#可扩展编程之MEF学习笔记(二):MEF的导出(Export)和导入(Import)
- MEF学习笔记(3):声明导出
- [MEF]第03篇 MEF延迟加载导出部件及元数据
- 忆龙2009:Silverlight学习笔记-根据需要动态加载应用程序集
- Java虚拟机学习笔记(类加载)
- 游戏开发学习笔记-4.加载X模型
- MySQL学习笔记十一:数据导入与导出
- 类的加载机制与反射学习笔记
- Mysql学习笔记——MySql导入导出数据库常用方法
- OSG学习笔记2:地形构建和模型加载