Class KernelPackageRegistry
Namespace: DotBoxD.Plugins.Kernel
Assembly: DotBoxD.Plugins.dll
Resolves a kernel CLR type to its analyzer-generated DotBoxD.Plugins.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 KernelPackageRegistryInheritance
Section titled “Inheritance”object ← KernelPackageRegistry
Inherited Members
Section titled “Inherited Members”object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.MemberwiseClone(), object.ReferenceEquals(object?, object?), object.ToString()
Remarks
Section titled “Remarks”Generated packages may self-register a factory via a [ModuleInitializer] for NativeAOT/
trimming friendliness (call DotBoxD.Plugins.Kernel.KernelPackageRegistry.Register(System.Type,System.Func{DotBoxD.Plugins.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
Section titled “Methods”Register(Type, Func<PluginPackage>)
Section titled “ 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
Section titled “Parameters”kernelType Type
factory Func<PluginPackage>
Resolve<TKernel>()
Section titled “ Resolve<TKernel>()”Resolves the generated package for TKernel.
public static PluginPackage Resolve<TKernel>() where TKernel : classReturns
Section titled “Returns”Type Parameters
Section titled “Type Parameters”TKernel
Resolve(Type)
Section titled “ Resolve(Type)”Resolves the generated package for a kernel type.
public static PluginPackage Resolve(Type kernelType)Parameters
Section titled “Parameters”kernelType Type