示例#1
0
        public PluginContainer(
            IInternalPluginHost pluginHost,
            IORegistry ioRegistry,
            CompositionContainer parentContainer,
            Type pluginType,
            INodeInfo nodeInfo
            )
        {
            FIOFactory = new IOFactory(pluginHost, ioRegistry);

            var catalog            = new TypeCatalog(pluginType);
            var ioExportProvider   = new IOExportProvider(FIOFactory);
            var hostExportProvider = new HostExportProvider()
            {
                PluginHost = pluginHost
            };
            var exportProviders = new ExportProvider[] { hostExportProvider, ioExportProvider, parentContainer };

            FContainer = new CompositionContainer(catalog, exportProviders);
            FContainer.ComposeParts(this);
            FPlugin = PluginBase as IPluginEvaluate;

            FAutoEvaluate = nodeInfo.AutoEvaluate;
            FIOFactory.OnCreated(EventArgs.Empty);
        }
示例#2
0
        public EditorFactory(CompositionContainer parentContainer, ILogger logger, IHDEHost hdeHost)
        {
            FHostExportProvider     = new HostExportProvider();
            FExportProviders        = new ExportProvider[] { parentContainer, FHostExportProvider };
            FNodeInfos              = new Dictionary <INodeInfo, ExportFactory <IEditor, IEditorInfo> >();
            FExportLifetimeContexts = new Dictionary <IInternalPluginHost, ExportLifetimeContext <IEditor> >();
            FNodeInfoExports        = new List <ExportFactory <IEditor, IEditorInfo> >();
            FLogger       = logger;
            FHDEHost      = hdeHost;
            FMoveToLine   = -1;
            FMoveToColumn = -1;

            FHDEHost.MouseDown += HandleMouseDown;
        }