Delegate BindArgumentsDelegate

Binds raw parser arguments to an opaque object that is cached with the route definition.

Namespace: NanoRoute
Assembly: NanoRoute.dll
Syntax
public delegate object? BindArgumentsDelegate(IReadOnlyDictionary<string, string> rawArgs)
Parameters
Type Name Description
IReadOnlyDictionary<string, string> rawArgs

The raw parser arguments as parsed from the route template, keyed case-insensitively.

Returns
Type Description
object

A parser-specific object that will later be exposed through Arguments. Return null when the parser does not need a bound payload.

Remarks

This delegate runs during route registration, not during request processing. It is the right place to validate parser arguments, parse numeric limits, or precompile regular expressions once.

Examples
routerBuilder.AddValueParser
(
    "int",
    static rawArgs => (
        Min: rawArgs.TryGetValue("min", out string? min) ? int.Parse(min) : null,
        Max: rawArgs.TryGetValue("max", out string? max) ? int.Parse(max) : null
    ),
    static context =>
    {
        var args = ((int? Min, int? Max)) context.Arguments!;
        return ValueTask.FromResult(new ValueParseResult(true, context.Segment));
    }
);
In this article
Back to top Generated by DocFX