In the context of this library a plugin is any any non-abstract class with a visible default constructor that can be loaded during runtime via reflection. All plugins must support the IPlugin interface. A plugin does not need to inherit from this Plugin class.

Plugin is an abstract class and partially implements IPlugin.


public event EventHandler<PluginUnloadEventArgs> PluginUnloadEvent;
An event issued when the plugin desires to be unloaded.


protected Plugin(string name);
Initializes a new instance of the plugin class.
  • name - The plugin name.


public string Name { get; }
Gets the name of the plugin.

Methods: Protected

protected void CallPluginUnloadEvent();
Raises a PluginUnloadEvent for this plugin.

Methods: Abstract

public abstract void Initialize();
Initializes the plugin.

public abstract void Run(IDictionary<string, object> arguments);
Executes the plugin.
  • arguments - A collection of arguments to be processed.

public abstract void Uninitialize();
Allows the plugin to be disposed of.

Last edited Mar 19, 2013 at 6:10 PM by jsaundea, version 4


No comments yet.