Table of Contents

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

logger ILogger<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

IEnumerable<string>

GetLoadedPlugins()

Gets all loaded plugins.

public IEnumerable<IBackendPlugin> GetLoadedPlugins()

Returns

IEnumerable<IBackendPlugin>

GetPlugin(string)

Gets a loaded plugin by ID.

public IBackendPlugin? GetPlugin(string pluginId)

Parameters

pluginId string

Returns

IBackendPlugin

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

assemblyPath string
pluginTypeName string
cancellationToken CancellationToken

Returns

Task<IBackendPlugin>

RegisterPluginFactory(string, Func<IBackendPlugin>)

Registers a custom plugin factory.

public void RegisterPluginFactory(string pluginTypeName, Func<IBackendPlugin> factory)

Parameters

pluginTypeName string
factory Func<IBackendPlugin>

UnloadPluginAsync(string, CancellationToken)

Unloads a plugin.

public Task<bool> UnloadPluginAsync(string pluginId, CancellationToken cancellationToken = default)

Parameters

pluginId string
cancellationToken CancellationToken

Returns

Task<bool>