A comprehensive .NET library for dynamic plugin loading, execution, and management with enhanced stability, type safety, and security features.
All notable changes to the RuntimePluggableClassFactory project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
HybridPluginFactory and related types from .Examples namespace to .Containerized namespaceUnloadPlugin() and UnloadAllPlugins() methodsAssembly.LoadFrom() replaced with AssemblyLoadContextListAllPossiblePluginsAsync())IPluginClass implementations remain compatibleFilePluginLoader<T>ITypedPluginClass<TInput, TOutput> for type safetyBefore (v1.x):
var pluginLoader = new FilePluginLoader<IMyPlugin>(pluginDirectory);
var factory = new PluginClassFactory<IMyPlugin>(pluginLoader);
After (v2.0):
var securityValidator = new DefaultPluginSecurityValidator(PluginSecuritySettings.CreateDefault());
var pluginLoader = new FilePluginLoader<IMyPlugin>(pluginDirectory, securityValidator);
var factory = new PluginClassFactory<IMyPlugin>(pluginLoader);
// Subscribe to error events
factory.PluginInstantiationError += (sender, e) => Console.WriteLine($"Plugin error: {e.Exception.Message}");
// Use type-safe factory (optional)
var typedFactory = new TypedPluginClassFactory<IMyTypedPlugin, MyInput, MyOutput>(pluginLoader);
IPluginClass interface for plugin developmentPluginClassFactory<T> for plugin instantiationFilePluginLoader<T> for file-based plugin loadingFor questions, issues, or support: