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).