| File: LinkParser.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> /// Defines a contract to parse URIs using information from routing. /// </summary> public abstract class LinkParser { /// <summary> /// Attempts to parse the provided <paramref name="path"/> using the route pattern /// specified by the <see cref="Endpoint"/> matching <paramref name="address"/>. /// </summary> /// <typeparam name="TAddress">The address type.</typeparam> /// <param name="address">The address value. 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="ParsePathByAddress{TAddress}(TAddress, PathString)"/> will attempt to first resolve /// <see cref="Endpoint"/> instances that match <paramref name="address"/> 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 abstract RouteValueDictionary? ParsePathByAddress<TAddress>(TAddress address, PathString path); }