コード例 #1
0
ファイル: PluginServices.cs プロジェクト: LookIron/openCTT
        private void AddPlugin(string FileName)
        {
            Assembly pluginAssembly = Assembly.LoadFrom(FileName);

            foreach (Type pluginType in pluginAssembly.GetTypes())
            {
                if (pluginType.IsPublic)
                {
                    if (!pluginType.IsAbstract)
                    {
                        Type typeInterface = pluginType.GetInterface("OCTTPluginInterface.IPlugin", true);

                        if (typeInterface != null)
                        {
                            Types.OneAvailablePlugin newPlugin = new Types.OneAvailablePlugin();
                            newPlugin.AssemblyPath = FileName;

                            newPlugin.Instance = (IPlugin)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));

                            newPlugin.Instance.Host = this;
                            newPlugin.Instance.Initialize();

                            this._availablePluginsCollection.Add(newPlugin);

                            newPlugin = null;
                        }

                        typeInterface = null;
                    }
                }
            }

            pluginAssembly = null;
        }
コード例 #2
0
ファイル: PluginServices.cs プロジェクト: LookIron/openCTT
            public Types.OneAvailablePlugin Find(string pluginNameOrPath)
            {
                Types.OneAvailablePlugin toReturn = null;

                foreach (Types.OneAvailablePlugin plugin in this.List)
                {
                    if ((plugin.Instance.Name.Equals(pluginNameOrPath)) || plugin.AssemblyPath.Equals(pluginNameOrPath))
                    {
                        toReturn = plugin;
                        break;
                    }
                }
                return(toReturn);
            }
コード例 #3
0
ファイル: PluginServices.cs プロジェクト: LookIron/openCTT
 public void Remove(Types.OneAvailablePlugin pluginToRemove)
 {
     this.List.Remove(pluginToRemove);
 }
コード例 #4
0
ファイル: PluginServices.cs プロジェクト: LookIron/openCTT
 public void Add(Types.OneAvailablePlugin pluginToAdd)
 {
     this.List.Add(pluginToAdd);
 }