现在的位置: 首页 > 综合 > 正文

MEF: MSDN 杂志上的文章(9) 控制部件创建策略 ???

2013年07月05日 ⁄ 综合 ⁄ 共 593字 ⁄ 字号 评论关闭

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

默认情况下,容器中的所有部件实例都是单例因而由在容器中导入它们的所有部件共享。因此,SalesOrderView 和 ViewFactory 的所有导入程序都将获得同一实例。在很多情况下需要这样,因为这样便无需拥有其他组件所依赖的静态成员。但是,有时每个导入程序都需要获取自己的实例,例如用于同时在屏幕上查看多个 SalesOrderView 实例。

MEF 中的部件创建策略可以是以下三个值之一:CreationPolicy.Shared、CreationPolicy.NonShared 或 CreationPolicy.Any。若要指定部件的创建策略,请使用 PartCreationPolicy 特性修饰部件.

 

[PartCreationPolicy(CreationPolicy.NonShared)]
[Export(typeof(ISalesOrderView))]
public partial class SalesOrderView : UserControl, ISalesOrdderView
{
    public SalesOrderView()
    {
    }
}

 

还可以对导入设置 RequiredCreationPolicy 属性,也可在导入程序端指定 PartCreationPolicy。

 

抱歉!评论已关闭.