Project Description
Provides agnostic functionality for tiered plugin loading, unloading, and plugin collection management.

Please see the Documentation section for a complete explanation of each class and interface found in the library.

Overview

Namespace: Community.Tools.Plugins
Interfaces: IPlugin
Classes: Plugin, PluginHost, and PluginManager

Plugin - implements IPlugin, except for Initialize, Run, and Uninitialize methods. Within the context of this library a plugin is any non-abstract class with a visible default constructor that can be loaded during runtime via reflection. All Plugins must support the IPlugin interface.

PluginHost - inherits from Plugin and defines two further abstract methods: PluginLoaded and PluginUnloaded. A PluginHost has a PluginManager that it uses to load plugins from a provided target location after initialization.

PluginManager - Manages a collection of IPlugins and filters that apply to those plugins. It is guaranteed that all plugins in the collection will adhere to all filters. The PluginManager can be used independently of the Plugin and PluginHost abstract classes for managing IPlugin objects. This class is not thread safe.

Last edited Mar 19, 2013 at 6:32 PM by jsaundea, version 7