【软件设计】【MEF】控件输出多次例子

我有个用户控件,需要输出多次,摸索来摸索去找不出个所以然来,突然发现人家文档上写的很清楚

 http://mef.codeplex.com/wikipage?title=Parts%20Lifetime&referringTitle=Guide

 

 

[PartCreationPolicy(CreationPolicy.NonShared)]

 

我的例子SoftDevelop.rar

 

 

 

主要是一个控件输出生命周期的问题,是共享还是非共享

 

 

如果是共享,那么生命周期内,这个控件就一个实例

如果是非共享,那么,每个需要的地方会自动生成一个实例

 

 

比如:

    [Export( typeof(IOutputWindow))]

    [PartCreationPolicy(CreationPolicy.NonShared)]

    public partial class OutputWindow : UserControl, IOutputWindow

 

这样就是非共享

    我在一个窗口中,输入3OutputWindow,系统会自动生成3个对象

[Import(typeof(IOutputWindow))]

        private IOutputWindow outputWindow = null;

 

        [Import(typeof(IOutputWindow))]

        private IOutputWindow outputWindow2 = null;

 

        [Import(typeof(IOutputWindow))]

        private IOutputWindow outputWindow3 = null;

 

   

 

如果不用

         [Export( typeof(IOutputWindow))]

     public partial class OutputWindow : UserControl, IOutputWindow

 

则生成的窗体如下:虽然输入3次,但只有一个对象实例

   

 

 

posted @ 2010-05-15 16:17  宁#宁  阅读(401)  评论(1编辑  收藏  举报