Class AotPluginRegistry
- Namespace
- DotCompute.Plugins.Core
- Assembly
- DotCompute.Plugins.dll
AOT-compatible plugin registry that avoids reflection-based activation. Replaces the dynamic plugin system with static registration.
public sealed class AotPluginRegistry : IDisposable
- Inheritance
-
AotPluginRegistry
- Implements
- Inherited Members
- Extension Methods
Constructors
AotPluginRegistry(ILogger<AotPluginRegistry>)
Initializes a new instance of the AotPluginRegistry class.
public AotPluginRegistry(ILogger<AotPluginRegistry> logger)
Parameters
loggerILogger<AotPluginRegistry>The logger.
Exceptions
- ArgumentNullException
logger
Methods
CreatePlugin(string)
Creates a plugin instance using static factory methods instead of reflection.
public IBackendPlugin? CreatePlugin(string pluginTypeName)
Parameters
pluginTypeNamestring
Returns
Dispose()
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
public void Dispose()
GetAvailablePluginTypes()
Lists all available plugin types that can be created.
public IReadOnlyCollection<string> GetAvailablePluginTypes()
Returns
GetLoadedPlugins()
Gets all loaded plugins.
public IReadOnlyCollection<IBackendPlugin> GetLoadedPlugins()
Returns
GetPlugin(string)
Gets a loaded plugin by ID.
public IBackendPlugin? GetPlugin(string pluginId)
Parameters
pluginIdstring
Returns
RegisterPluginFactory(string, Func<IBackendPlugin>)
Registers a custom plugin factory for AOT scenarios. This allows applications to register additional plugins at startup.
public void RegisterPluginFactory(string pluginTypeName, Func<IBackendPlugin> factory)
Parameters
pluginTypeNamestringfactoryFunc<IBackendPlugin>
UnloadPlugin(string)
Unloads a plugin by ID.
public bool UnloadPlugin(string pluginId)
Parameters
pluginIdstring