Table of Contents

Class KernelPackageRegistry

Namespace
DotBoxD.Plugins.Kernel
Assembly
DotBoxD.Plugins.dll

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

kernelType Type
factory Func<PluginPackage>

Resolve(Type)

Resolves the generated package for a kernel type.

public static PluginPackage Resolve(Type kernelType)

Parameters

kernelType Type

Returns

PluginPackage

Resolve<TKernel>()

Resolves the generated package for TKernel.

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

Returns

PluginPackage

Type Parameters

TKernel