MEF: MSDN 杂志上的文章(2). 两种导入方式的比较. 属性或字段的导入 VS 构造函数的导入...

本文深入探讨了Mef框架下属性导入和构造函数导入两种方式的区别,详细阐述了它们的应用场景、优缺点及注意事项,旨在帮助开发者更灵活地选择导入策略。

http://msdn.microsoft.com/zh-cn/magazine/ee291628.aspx

导入有2种方式: (1)通过属性和字段导入

public class ViewFactory
{
  	[Import]
  	public SalesOrderView OrderView { get; set; }
}

(2)通过构造函数导入

public class ViewFactory
{
            [ImportingConstructor]
            public ViewFactory(SalesOrderView salesOrderView)
           {
           }
}

通过构造函数进行导入(通常称为构造函数注入),使用导入构造函数时,MEF 会假设所有参数都是导入,从而不必使用 import 特性.

通过构造函数而不是属性进行导入属于个人喜好问题,

但属性导入适用范围比较广,尤其是当存在并非由 MEF 实例化的部件时

构造函数参数也不支持重新组合

属性导入 Import 可以设置 RequiredCreationPolicy 但 ImportingConstructor 好像不行。

属性导入 Import 中,在构造函数好像访问不到 Import 的属性。这点很奇怪,好像是执行完构造函数后,才能访问Imort属性。

 

转载于:https://www.cnblogs.com/Ken-Cai/archive/2012/06/21/2558304.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值