| File: LinkParserEndpointNameAddressExtensions.cs | Web Access |
| Project: src\aspnetcore\src\Http\Routing\src\Microsoft.AspNetCore.Routing.csproj (Microsoft.AspNetCore.Routing) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.AspNetCore.Http; namespace Microsoft.AspNetCore.Routing; /// <summary> /// Extension methods for using <see cref="LinkParser"/> with an endpoint name. /// </summary> public static class LinkParserEndpointNameAddressExtensions { /// <summary> /// Attempts to parse the provided <paramref name="path"/> using the route pattern /// specified by the <see cref="Endpoint"/> matching <paramref name="endpointName"/>. /// </summary> /// <param name="parser">The <see cref="LinkParser"/>.</param> /// <param name="endpointName">The endpoint name. Used to resolve endpoints.</param> /// <param name="path">The URI path to parse.</param> /// <returns> /// A <see cref="RouteValueDictionary"/> with the parsed values if parsing is successful; /// otherwise <c>null</c>. /// </returns> /// <remarks> /// <para> /// <see cref="ParsePathByEndpointName(LinkParser, string, PathString)"/> will attempt to first resolve /// <see cref="Endpoint"/> instances that match <paramref name="endpointName"/> and then use the route /// pattern associated with each endpoint to parse the URL path. /// </para> /// <para> /// The parsing operation will fail and return <c>null</c> if either no endpoints are found or none /// of the route patterns match the provided URI path. /// </para> /// </remarks> public static RouteValueDictionary? ParsePathByEndpointName( this LinkParser parser, string endpointName, PathString path) { ArgumentNullException.ThrowIfNull(parser); ArgumentNullException.ThrowIfNull(endpointName); return parser.ParsePathByAddress<string>(endpointName, path); } }