Class PluginLoader
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
loggerILogger<PluginLoader>
Methods
GetAll()
Get all loaded plugins.
public IReadOnlyList<LoadedPlugin> GetAll()
Returns
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
assemblyPathstringcontextIPluginContextpluginIdstringctCancellationToken
Returns
LoadFromDirectoryAsync(string, IPluginContext, CancellationToken)
Load all plugins from a directory.
public Task<IReadOnlyList<LoadedPlugin>> LoadFromDirectoryAsync(string directory, IPluginContext context, CancellationToken ct = default)
Parameters
directorystringcontextIPluginContextctCancellationToken
Returns
UnloadAsync(string, CancellationToken)
Unload a plugin and its assembly.
public Task UnloadAsync(string nameOrId, CancellationToken ct = default)
Parameters
nameOrIdstringctCancellationToken