Пример #1
0
        private void AddPlugin(string FileName)
        {
            Assembly pluginAssembly = Assembly.LoadFrom(FileName);

            foreach (Type pluginType in pluginAssembly.GetTypes())
            {
                if (pluginType.IsPublic)
                {
                    if (!pluginType.IsAbstract)
                    {
                        Type[] typeInterfaces = pluginType.GetInterfaces();

                        foreach (Type typeInterface in typeInterfaces)
                        {
                            if (typeInterface.ToString() == "GraphicsInterface.IGraphicsProvider")
                            {
                                GraphicsTypes.AvailablePlugin newPlugin = new GraphicsTypes.AvailablePlugin();
                                newPlugin.AssemblyPath = FileName;
                                newPlugin.Instance     = (IGraphicsProvider)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
                                this.colAvailablePlugins.Add(newPlugin);
                                newPlugin = null;
                            }
                        }
                    }
                }
            }

            pluginAssembly = null;
        }
Пример #2
0
 void BtnOkClick(object sender, EventArgs e)
 {
     if (listTools.SelectedIndex != -1)
     {
         GraphicsTypes.AvailablePlugin plugin = graphicsServices.GetPlugin((string)listTools.SelectedItem);
         if (plugin.Instance.Name != null)
         {
             plugin.Instance.Config = new ConfigManager((string)listTools.SelectedItem);
             plugin.Instance.Configure();
         }
     }
 }
Пример #3
0
        void formAddClosed(object sender, EventArgs e)
        {
            if (formAdd.plugin != null)
            {
                GraphicsTypes.AvailablePlugin plugin = parent.graphicsServices.GetPlugin(formAdd.plugin);

                plugin.Instance.Layer = new LayerManager(formAdd.plugin, layers);
                plugin.Instance.ConfigureCommon();

                symbolManager.SaveCommonLayers(layers);

                this.RefreshLayers();
            }
        }