Class KernelPackageRegistry
Resolves a kernel CLR type to its analyzer-generated PluginPackage, so a host or a
plugin shim can ship a kernel "by type" (e.g. Register<TService, TKernel>()) without
naming the generated {Kernel}PluginPackage explicitly.
public static class KernelPackageRegistry
- Inheritance
-
KernelPackageRegistry
- Inherited Members
Remarks
Generated packages may self-register a factory via a [ModuleInitializer] for NativeAOT/
trimming friendliness (call Register(Type, Func<PluginPackage>)). When no factory is registered, the package is
resolved by the generator's naming convention — a public static {KernelName}PluginPackage.Create()
in the kernel's assembly — via reflection.
Methods
Register(Type, Func<PluginPackage>)
Registers a package factory for a kernel type (typically from a generated [ModuleInitializer]).
public static void Register(Type kernelType, Func<PluginPackage> factory)
Parameters
kernelTypeTypefactoryFunc<PluginPackage>
Resolve(Type)
Resolves the generated package for a kernel type.
public static PluginPackage Resolve(Type kernelType)
Parameters
kernelTypeType
Returns
Resolve<TKernel>()
Resolves the generated package for TKernel.
public static PluginPackage Resolve<TKernel>() where TKernel : class
Returns
Type Parameters
TKernel