Skip to content

GeneratedSemanticKernelPluginScanner

NexusLabs.Needlr.SemanticKernel

NexusLabs.Needlr.SemanticKernel.PluginScanners

GeneratedSemanticKernelPluginScanner Class

Source-generation-friendly SemanticKernel plugin scanner that uses compile-time generated plugin type lists.

public sealed class GeneratedSemanticKernelPluginScanner : NexusLabs.Needlr.SemanticKernel.ISemanticKernelPluginScanner

Inheritance System.Object 🡒 GeneratedSemanticKernelPluginScanner

Implements ISemanticKernelPluginScanner

Remarks

When using source generation, the generator emits a NexusLabs.Needlr.Generated.SemanticKernelPlugins class containing: - StaticPluginTypes: Types with static [KernelFunction] methods - InstancePluginTypes: Types with instance [KernelFunction] methods - AllPluginTypes: Combined list of all plugin types

This scanner provides a reflection-free way to access these generated lists. For AOT/trimmed applications, use this scanner instead of NexusLabs.Needlr.SemanticKernel.PluginScanners.AssemblySemanticKernelPluginScanner or NexusLabs.Needlr.SemanticKernel.PluginScanners.ServiceProviderSemanticKernelPluginScanner which use reflection.

Usage:

// The generated types are available in NexusLabs.Needlr.Generated namespace
var pluginTypes = NexusLabs.Needlr.Generated.SemanticKernelPlugins.AllPluginTypes;

// Or use this scanner wrapper
var scanner = new GeneratedSemanticKernelPluginScanner();
var types = scanner.ScanForPluginTypes();

Constructors

GeneratedSemanticKernelPluginScanner(IReadOnlyList<Type>) Constructor

Creates a new instance using the specified plugin types.

public GeneratedSemanticKernelPluginScanner(System.Collections.Generic.IReadOnlyList<System.Type> pluginTypes);

Parameters

pluginTypes System.Collections.Generic.IReadOnlyList<System.Type>

The pre-discovered plugin types (typically from generated code).