• BasePluginManager

BasePluginManager

Namespace: PluginManager

Assembly: PluginManager

Base plugin manager, contains methods and properties to load and interact with plugins within an application

Constructors

#ctor Internal constructor, used internally by the BasePluginManager to initialise the class internals
#ctor(PluginManager.PluginManagerConfiguration,PluginManager.PluginSettings) Default constructor

Properties

RootPath Internal property for retrieving the application defined root path
Logger Protected ILogger instance that can be retrieved via a descendant class
ServiceProvider Returns the active IServiceProvider to descendant classes

Methods

Finalize() Destructor
PluginLoading(Reflection.Assembly) Indicates that a plugin is about to be loaded.
PluginLoaded(Reflection.Assembly) Indicates a plugin has been loaded.
PluginInitialised(PluginManager.Abstractions.IPluginModule) Indicates that the plugin module has been initialised.
PluginConfigured(PluginManager.Abstractions.IPluginModule) Indicates that the plugin module has been configured.
PreConfigurePluginServices(Microsoft.Extensions.DependencyInjection.IServiceCollection) Provides an opportunity for the PluginManager descendant to pre configure plugin modules, if desired.
PostConfigurePluginServices(Microsoft.Extensions.DependencyInjection.IServiceCollection) Provides an opportunity for the PluginManager descendant to post configure plugin modules, if desired.
CanExtractResource(String) Provides an opportunity for the PluginManager descendant to validate whether a resource can be extracted from within a plugin module.
ModifyPluginResourceName(String) Provides an opportunity for the PluginManager descendant to modify the name of the resource being extracted.
ServiceConfigurationComplete(IServiceProvider) Indicates that configuration of the IServiceCollection is now complete
PluginsGetLoaded() Returns all loaded plugin data
PluginLoad(Reflection.Assembly, String, Boolean) Loads and configures an individual plugin
PluginLoad(String, Boolean) Loads and configures an individual plugin
ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection) Allows plugins to configure the services for all plugins
ConfigureServices() Provides an opportunity for plugins to configure services that can be used in IOC, this method creates a custom IServiceCollection class and should only be used where the host does not natively include it's own IServiceCollection
PluginGetTypesWithAttribute``1() Retrieves the non instantiated classes which have attribute T, or if any of the methods or properties have attribute T
PluginGetClassTypes``1() Retrieves the non instantiated classes which inherit from T or implement interface T
PluginGetClasses``1() Retreives an instantiated specific type of class which inherits from a specific class or interface from within the plugin modules
PluginLoaded(String, Int32, String) Determines whether a plugin is loaded, and retrieves the version
AddAssembly(Reflection.Assembly) Allows plugin descendents to load an Assembly, even if it is not a true plugin module, this will ensure it's classes and types can be found with other searches in other ways like when using IPluginClassesService etc.
Dispose() IDisposable Dispose method
Dispose(Boolean) Disposable method, notify all plugins to finalise
GetLocalCopyOfPlugin(String) Copies the plugin file to a local temp area, that will be used to load the plugin from.
GetMinMaxValue(UInt16, UInt16, UInt16) Checks a value, to ensure it is between min/max Value
GetPluginClass``1(PluginManager.Internal.PluginModule) Returns the first class/interface of type T within the assembly
ExtractResources(Reflection.Assembly, PluginManager.PluginSetting) Extract Views/CSS/JS files from resources
LoadAssembly(String) Dynamically loads an assembly
CurrentDomainAssemblyResolve(Object, ResolveEventArgs) If associated/required dll's are not found, and settings are configured, attempt to load them from the configured path
GetPluginSetting(String) Retrieve plugin settings for an individual plugin module

In This Document