Table of Contents

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

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

pluginTypeName string

Returns

IBackendPlugin

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

IReadOnlyCollection<string>

GetLoadedPlugins()

Gets all loaded plugins.

public IReadOnlyCollection<IBackendPlugin> GetLoadedPlugins()

Returns

IReadOnlyCollection<IBackendPlugin>

GetPlugin(string)

Gets a loaded plugin by ID.

public IBackendPlugin? GetPlugin(string pluginId)

Parameters

pluginId string

Returns

IBackendPlugin

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

pluginTypeName string
factory Func<IBackendPlugin>

UnloadPlugin(string)

Unloads a plugin by ID.

public bool UnloadPlugin(string pluginId)

Parameters

pluginId string

Returns

bool