Skip to content

Class HookRegistry

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

public sealed class HookRegistry

objectHookRegistry

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

FireAsync<TContext, TResult>(TContext, CancellationToken)

Section titled “ FireAsync<TContext, TResult>(TContext, CancellationToken)”

Dispatches the result-returning hooks (.Register(…) / .RegisterLocal(…)) installed for TContext in descending priority order, returning the first successful TResult or null when none is registered or none succeeds. The host applies the returned result to its live state. The result type is named explicitly here because the host — unlike the plugin authoring side, where it is inferred from the [Hook] context — already knows the type it will apply.

public ValueTask<TResult?> FireAsync<TContext, TResult>(TContext context, CancellationToken cancellationToken = default) where TResult : struct, IHookResult

context TContext

cancellationToken CancellationToken

ValueTask<TResult?>

TContext

TResult

FireAsync<TContext, TResult>(TContext, ResultHookDispatchOptions<TResult>, CancellationToken)

Section titled “ FireAsync<TContext, TResult>(TContext, ResultHookDispatchOptions<TResult>, CancellationToken)”
public ValueTask<TResult?> FireAsync<TContext, TResult>(TContext context, ResultHookDispatchOptions<TResult> options, CancellationToken cancellationToken = default) where TResult : struct, IHookResult

context TContext

options ResultHookDispatchOptions<TResult>

cancellationToken CancellationToken

ValueTask<TResult?>

TContext

TResult

public HookPipeline<TEvent, HookContext> On<TEvent>()

HookPipeline<TEvent, HookContext>

TEvent

public HookPipeline<TEvent, HookContext> On<TEvent>(IPluginEventAdapter<TEvent> adapter)

adapter IPluginEventAdapter<TEvent>

HookPipeline<TEvent, HookContext>

TEvent

On<TEvent, TContext>(Func<HookContext, TContext>)

Section titled “ On<TEvent, TContext>(Func<HookContext, TContext>)”
public HookPipeline<TEvent, TContext> On<TEvent, TContext>(Func<HookContext, TContext> createContext)

createContext Func<HookContext, TContext>

HookPipeline<TEvent, TContext>

TEvent

TContext

On<TEvent, TContext>(IPluginEventAdapter<TEvent>, Func<HookContext, TContext>)

Section titled “ On<TEvent, TContext>(IPluginEventAdapter<TEvent>, Func<HookContext, TContext>)”
public HookPipeline<TEvent, TContext> On<TEvent, TContext>(IPluginEventAdapter<TEvent> adapter, Func<HookContext, TContext> createContext)

adapter IPluginEventAdapter<TEvent>

createContext Func<HookContext, TContext>

HookPipeline<TEvent, TContext>

TEvent

TContext

PublishAsync<TEvent>(TEvent, CancellationToken)

Section titled “ PublishAsync<TEvent>(TEvent, CancellationToken)”
public ValueTask PublishAsync<TEvent>(TEvent e, CancellationToken cancellationToken = default)

e TEvent

cancellationToken CancellationToken

ValueTask

TEvent