Skip to content

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 KernelPackageRegistry

objectKernelPackageRegistry

object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.MemberwiseClone(), object.ReferenceEquals(object?, object?), object.ToString()

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.

Registers a package factory for a kernel type (typically from a generated [ModuleInitializer]).

public static void Register(Type kernelType, Func<PluginPackage> factory)

kernelType Type

factory Func<PluginPackage>

Resolves the generated package for TKernel.

public static PluginPackage Resolve<TKernel>() where TKernel : class

PluginPackage

TKernel

Resolves the generated package for a kernel type.

public static PluginPackage Resolve(Type kernelType)

kernelType Type

PluginPackage