示例#1
0
 private void BundleContextExtensionChanged(object sender, ExtensionEventArgs e)
 {
     if (e.ExtensionPoint.Equals(SimpleWinFormShellExtensionPoint))
     {
         if (e.Action == CollectionChangedAction.Add)
         {
             // 新增扩展信息,说明有插件被启动,为其创建界面菜单
             var app = ApplicationContainer.AddApplicationForExtension(e.Extension);
             CreateMenuStripForApplication(app);
         }
         else if (e.Action == CollectionChangedAction.Remove)
         {
             // 扩展信息被删除,有插件被停止,删除对应的界面菜单
             var app = ApplicationContainer.RemoveApplicationForExtension(e.Extension);
             RemoveMenuStripForApplication(app);
         }
     }
 }
示例#2
0
        /// <summary>
        /// 处理扩展信息。
        /// </summary>
        private void HanldeExtension()
        {
            Initialize();

            // 1 获取所有扩展信息
            var extensions = BundleContext.GetExtensions(SimpleWinFormShellExtensionPoint);
            WinShellApplication application;

            foreach (var extension in extensions)
            {
                // 2 将扩展Extension对象转换成WinShellApplication对象
                application = ApplicationContainer.AddApplicationForExtension(extension);
                // 3 为WinShellApplication对象创建顶层菜单和子菜单
                CreateMenuStripForApplication(application);
            }
            // 4 监听扩展变更事件
            BundleContext.ExtensionChanged += BundleContextExtensionChanged;
        }