Add XML docs to data sources and metadata (#692)
This commit is contained in:
parent
27a35d5d9b
commit
5ee3ae9002
|
|
@ -12,6 +12,9 @@ using Microsoft.Extensions.Primitives;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Routing
|
namespace Microsoft.AspNetCore.Routing
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Represents an <see cref="EndpointDataSource"/> whose values come from a collection of <see cref="EndpointDataSource"/> instances.
|
||||||
|
/// </summary>
|
||||||
[DebuggerDisplay("{DebuggerDisplayString,nq}")]
|
[DebuggerDisplay("{DebuggerDisplayString,nq}")]
|
||||||
public sealed class CompositeEndpointDataSource : EndpointDataSource
|
public sealed class CompositeEndpointDataSource : EndpointDataSource
|
||||||
{
|
{
|
||||||
|
|
@ -33,12 +36,20 @@ namespace Microsoft.AspNetCore.Routing
|
||||||
_lock = new object();
|
_lock = new object();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets a <see cref="IChangeToken"/> used to signal invalidation of cached <see cref="Endpoint"/>
|
||||||
|
/// instances.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>The <see cref="IChangeToken"/>.</returns>
|
||||||
public override IChangeToken GetChangeToken()
|
public override IChangeToken GetChangeToken()
|
||||||
{
|
{
|
||||||
EnsureInitialized();
|
EnsureInitialized();
|
||||||
return _consumerChangeToken;
|
return _consumerChangeToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns a read-only collection of <see cref="Endpoint"/> instances.
|
||||||
|
/// </summary>
|
||||||
public override IReadOnlyList<Endpoint> Endpoints
|
public override IReadOnlyList<Endpoint> Endpoints
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
|
|
||||||
|
|
@ -8,15 +8,26 @@ using Microsoft.Extensions.Primitives;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Routing
|
namespace Microsoft.AspNetCore.Routing
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Provides a collection of <see cref="Endpoint"/> instances.
|
||||||
|
/// </summary>
|
||||||
public sealed class DefaultEndpointDataSource : EndpointDataSource
|
public sealed class DefaultEndpointDataSource : EndpointDataSource
|
||||||
{
|
{
|
||||||
private readonly List<Endpoint> _endpoints;
|
private readonly List<Endpoint> _endpoints;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="DefaultEndpointDataSource" /> class.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="endpoints">The <see cref="Endpoint"/> instances that the data source will return.</param>
|
||||||
public DefaultEndpointDataSource(params Endpoint[] endpoints)
|
public DefaultEndpointDataSource(params Endpoint[] endpoints)
|
||||||
: this((IEnumerable<Endpoint>) endpoints)
|
: this((IEnumerable<Endpoint>) endpoints)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="DefaultEndpointDataSource" /> class.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="endpoints">The <see cref="Endpoint"/> instances that the data source will return.</param>
|
||||||
public DefaultEndpointDataSource(IEnumerable<Endpoint> endpoints)
|
public DefaultEndpointDataSource(IEnumerable<Endpoint> endpoints)
|
||||||
{
|
{
|
||||||
if (endpoints == null)
|
if (endpoints == null)
|
||||||
|
|
@ -28,8 +39,16 @@ namespace Microsoft.AspNetCore.Routing
|
||||||
_endpoints.AddRange(endpoints);
|
_endpoints.AddRange(endpoints);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets a <see cref="IChangeToken"/> used to signal invalidation of cached <see cref="Endpoint"/>
|
||||||
|
/// instances.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>The <see cref="IChangeToken"/>.</returns>
|
||||||
public override IChangeToken GetChangeToken() => NullChangeToken.Singleton;
|
public override IChangeToken GetChangeToken() => NullChangeToken.Singleton;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns a read-only collection of <see cref="Endpoint"/> instances.
|
||||||
|
/// </summary>
|
||||||
public override IReadOnlyList<Endpoint> Endpoints => _endpoints;
|
public override IReadOnlyList<Endpoint> Endpoints => _endpoints;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,21 @@ using Microsoft.Extensions.Primitives;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Routing
|
namespace Microsoft.AspNetCore.Routing
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Provides a collection of <see cref="Endpoint"/> instances.
|
||||||
|
/// </summary>
|
||||||
public abstract class EndpointDataSource
|
public abstract class EndpointDataSource
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Gets a <see cref="IChangeToken"/> used to signal invalidation of cached <see cref="Endpoint"/>
|
||||||
|
/// instances.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>The <see cref="IChangeToken"/>.</returns>
|
||||||
public abstract IChangeToken GetChangeToken();
|
public abstract IChangeToken GetChangeToken();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns a read-only collection of <see cref="Endpoint"/> instances.
|
||||||
|
/// </summary>
|
||||||
public abstract IReadOnlyList<Endpoint> Endpoints { get; }
|
public abstract IReadOnlyList<Endpoint> Endpoints { get; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,14 +8,32 @@ using System.Linq;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Routing
|
namespace Microsoft.AspNetCore.Routing
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Represents HTTP method metadata used during routing.
|
||||||
|
/// </summary>
|
||||||
[DebuggerDisplay("{DebuggerToString(),nq}")]
|
[DebuggerDisplay("{DebuggerToString(),nq}")]
|
||||||
public sealed class HttpMethodMetadata : IHttpMethodMetadata
|
public sealed class HttpMethodMetadata : IHttpMethodMetadata
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="HttpMethodMetadata" /> class.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="httpMethods">
|
||||||
|
/// The HTTP methods used during routing.
|
||||||
|
/// An empty collection means any HTTP method will be accepted.
|
||||||
|
/// </param>
|
||||||
public HttpMethodMetadata(IEnumerable<string> httpMethods)
|
public HttpMethodMetadata(IEnumerable<string> httpMethods)
|
||||||
: this(httpMethods, acceptCorsPreflight: false)
|
: this(httpMethods, acceptCorsPreflight: false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="HttpMethodMetadata" /> class.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="httpMethods">
|
||||||
|
/// The HTTP methods used during routing.
|
||||||
|
/// An empty collection means any HTTP method will be accepted.
|
||||||
|
/// </param>
|
||||||
|
/// <param name="acceptCorsPreflight">A value indicating whether routing accepts CORS preflight requests.</param>
|
||||||
public HttpMethodMetadata(IEnumerable<string> httpMethods, bool acceptCorsPreflight)
|
public HttpMethodMetadata(IEnumerable<string> httpMethods, bool acceptCorsPreflight)
|
||||||
{
|
{
|
||||||
if (httpMethods == null)
|
if (httpMethods == null)
|
||||||
|
|
@ -27,8 +45,15 @@ namespace Microsoft.AspNetCore.Routing
|
||||||
AcceptCorsPreflight = acceptCorsPreflight;
|
AcceptCorsPreflight = acceptCorsPreflight;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns a value indicating whether the associated endpoint should accept CORS preflight requests.
|
||||||
|
/// </summary>
|
||||||
public bool AcceptCorsPreflight { get; }
|
public bool AcceptCorsPreflight { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns a read-only collection of HTTP methods used during routing.
|
||||||
|
/// An empty collection means any HTTP method will be accepted.
|
||||||
|
/// </summary>
|
||||||
public IReadOnlyList<string> HttpMethods { get; }
|
public IReadOnlyList<string> HttpMethods { get; }
|
||||||
|
|
||||||
private string DebuggerToString()
|
private string DebuggerToString()
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,20 @@ using System.Collections.Generic;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Routing
|
namespace Microsoft.AspNetCore.Routing
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Represents HTTP method metadata used during routing.
|
||||||
|
/// </summary>
|
||||||
public interface IHttpMethodMetadata
|
public interface IHttpMethodMetadata
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Returns a value indicating whether the associated endpoint should accept CORS preflight requests.
|
||||||
|
/// </summary>
|
||||||
bool AcceptCorsPreflight { get; }
|
bool AcceptCorsPreflight { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns a read-only collection of HTTP methods used during routing.
|
||||||
|
/// An empty collection means any HTTP method will be accepted.
|
||||||
|
/// </summary>
|
||||||
IReadOnlyList<string> HttpMethods { get; }
|
IReadOnlyList<string> HttpMethods { get; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,10 @@
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Routing
|
namespace Microsoft.AspNetCore.Routing
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Represents metadata used during link generation.
|
||||||
|
/// The associated endpoint will not be considered for link generation.
|
||||||
|
/// </summary>
|
||||||
public interface ISuppressLinkGenerationMetadata
|
public interface ISuppressLinkGenerationMetadata
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,10 @@
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Routing
|
namespace Microsoft.AspNetCore.Routing
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Represents metadata used during link generation.
|
||||||
|
/// The associated endpoint will not be considered for link generation.
|
||||||
|
/// </summary>
|
||||||
public sealed class SuppressLinkGenerationMetadata : ISuppressLinkGenerationMetadata
|
public sealed class SuppressLinkGenerationMetadata : ISuppressLinkGenerationMetadata
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue