zoukankan      html  css  js  c++  java
  • 【软件设计】【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次,但只有一个对象实例

       

     

  • 相关阅读:
    星空Password
    股票交易
    【1】博客目录
    事务
    C#基础索引
    C# String
    MSIL
    Evaluation Stack
    Spring源码编译以及导入Intellij IDEA的操作步骤
    WebFlux响应式编程简单示例
  • 原文地址:https://www.cnblogs.com/ningth/p/1736282.html
Copyright © 2011-2022 走看看