Skip to content

Class PluginEventAdapterRegistry

Namespace: DotBoxD.Plugins.Runtime
Assembly: DotBoxD.Plugins.dll

public sealed class PluginEventAdapterRegistry

objectPluginEventAdapterRegistry

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

Register<TEvent>(IPluginEventAdapter<TEvent>)

Section titled “ Register<TEvent>(IPluginEventAdapter<TEvent>)”
public void Register<TEvent>(IPluginEventAdapter<TEvent> adapter)

adapter IPluginEventAdapter<TEvent>

TEvent

public IPluginEventAdapter<TEvent> Resolve<TEvent>()

IPluginEventAdapter<TEvent>

TEvent

TryResolveErased(string, out IErasedPluginEventAdapter)

Section titled “ TryResolveErased(string, out IErasedPluginEventAdapter)”

Resolves the type-erased, wire-capable adapter for eventName (a manifest event name, possibly fully qualified) so the host-side router can wire an installed kernel to the right typed pipeline terminal with no reflection. Shares precedence with DotBoxD.Plugins.Runtime.PluginEventAdapterRegistry.TryResolveShape(System.String,DotBoxD.Plugins.Runtime.Input.PluginEventShape@), so an unambiguous resolution picks the same adapter a package was validated against; unlike validation, wiring rejects an ambiguous collision (returns false) rather than guess which event to wire to. Public as a composability seam — build custom by-name wiring on top of it when DotBoxD.Plugins.PluginServer.WireHook(DotBoxD.Plugins.Kernel.InstalledKernel,DotBoxD.Plugins.WireOptions)/DotBoxD.Plugins.PluginServer.WireSubscription(DotBoxD.Plugins.Kernel.InstalledKernel,DotBoxD.Plugins.WireOptions) don’t fit; the adapter must be registered first (the router does not auto-register by name).

public bool TryResolveErased(string eventName, out IErasedPluginEventAdapter adapter)

eventName string

adapter IErasedPluginEventAdapter

bool