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次,但只有一个对象实例

       

     

  • 相关阅读:
    uniapp跨域
    uniapp图片文件转base64
    懒加载
    修改富文本样式
    搜集到的常用Scheme
    JS浏览器复制
    程序员必须知道的六大ES6新特性
    详解ES6中的 let 和const
    数据库基础
    配置环境变量
  • 原文地址:https://www.cnblogs.com/ningth/p/1736282.html
Copyright © 2011-2022 走看看