您的位置:首页 > 其它

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

2012-06-21 23:01 225 查看
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属性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: