Table of Contents

Class PluginLoader

Namespace
JD.AI.Core.Plugins
Assembly
JD.AI.Core.dll

Dynamically loads IJdAiPlugin implementations from assemblies. Uses AssemblyLoadContext for isolation.

public sealed class PluginLoader : IPluginRuntime
Inheritance
PluginLoader
Implements
Inherited Members

Constructors

PluginLoader(ILogger<PluginLoader>)

public PluginLoader(ILogger<PluginLoader> logger)

Parameters

logger ILogger<PluginLoader>

Methods

GetAll()

Get all loaded plugins.

public IReadOnlyList<LoadedPlugin> GetAll()

Returns

IReadOnlyList<LoadedPlugin>

LoadAssemblyAsync(string, IPluginContext, string?, CancellationToken)

Load a single plugin assembly.

public Task<LoadedPlugin?> LoadAssemblyAsync(string assemblyPath, IPluginContext context, string? pluginId = null, CancellationToken ct = default)

Parameters

assemblyPath string
context IPluginContext
pluginId string
ct CancellationToken

Returns

Task<LoadedPlugin>

LoadFromDirectoryAsync(string, IPluginContext, CancellationToken)

Load all plugins from a directory.

public Task<IReadOnlyList<LoadedPlugin>> LoadFromDirectoryAsync(string directory, IPluginContext context, CancellationToken ct = default)

Parameters

directory string
context IPluginContext
ct CancellationToken

Returns

Task<IReadOnlyList<LoadedPlugin>>

UnloadAsync(string, CancellationToken)

Unload a plugin and its assembly.

public Task UnloadAsync(string nameOrId, CancellationToken ct = default)

Parameters

nameOrId string
ct CancellationToken

Returns

Task