Class AotPluginSystem
- Namespace
- DotCompute.Plugins.Core
- Assembly
- DotCompute.Plugins.dll
AOT-compatible plugin system that uses static registration instead of dynamic loading. This is a drop-in replacement for the reflection-based PluginSystem.
public sealed class AotPluginSystem : IDisposable
- Inheritance
-
AotPluginSystem
- Implements
- Inherited Members
- Extension Methods
Constructors
AotPluginSystem(ILogger<AotPluginSystem>)
Initializes a new instance of the AotPluginSystem class.
public AotPluginSystem(ILogger<AotPluginSystem> logger)
Parameters
loggerILogger<AotPluginSystem>The logger.
Exceptions
- ArgumentNullException
logger
Methods
Dispose()
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
public void Dispose()
GetAvailablePluginTypes()
Gets available plugin types (replaces assembly discovery).
public IEnumerable<string> GetAvailablePluginTypes()
Returns
GetLoadedPlugins()
Gets all loaded plugins.
public IEnumerable<IBackendPlugin> GetLoadedPlugins()
Returns
GetPlugin(string)
Gets a loaded plugin by ID.
public IBackendPlugin? GetPlugin(string pluginId)
Parameters
pluginIdstring
Returns
LoadPluginAsync(string, string, CancellationToken)
Loads a plugin using static factory methods instead of assembly loading. This method signature maintains compatibility with the original PluginSystem.
public Task<IBackendPlugin?> LoadPluginAsync(string assemblyPath, string pluginTypeName, CancellationToken cancellationToken = default)
Parameters
assemblyPathstringpluginTypeNamestringcancellationTokenCancellationToken
Returns
RegisterPluginFactory(string, Func<IBackendPlugin>)
Registers a custom plugin factory.
public void RegisterPluginFactory(string pluginTypeName, Func<IBackendPlugin> factory)
Parameters
pluginTypeNamestringfactoryFunc<IBackendPlugin>
UnloadPluginAsync(string, CancellationToken)
Unloads a plugin.
public Task<bool> UnloadPluginAsync(string pluginId, CancellationToken cancellationToken = default)
Parameters
pluginIdstringcancellationTokenCancellationToken