using System.Collections.Generic; using System.Drawing; using System.Reflection; using System.Resources; using Mono.Addins; namespace Core.Common.Base { [TypeExtensionPoint] public interface IPlugin { /// /// Gets the name of the plugin. /// The name. string Name { get; } /// /// Gets the name of the plugin as displayed in the Gui. /// The name. string DisplayName { get; } /// /// Gets the description. /// The description. string Description { get; } /// /// Gets the version of the plugin. /// The version. string Version { get; } /// /// Gets a value indicating whether the plugin is active. /// true if this instance is active; otherwise, false. bool IsActive { get; } /// /// Image for displaying in gui. Default format 32x32 bitmap or scalable. /// Image Image { get; } /// /// ResourceManger of plugin. Default Properties.Resources. /// ResourceManager Resources { get; set; } /// /// Activates the plugin. /// void Activate(); /// /// Deactivates the plugin. /// void Deactivate(); // TODO: check if we can remove it IEnumerable GetPersistentAssemblies(); } }