diff --git a/src/Http/Routing/src/DefaultInlineConstraintResolver.cs b/src/Http/Routing/src/DefaultInlineConstraintResolver.cs
index 02fd133e28..7411fe485b 100644
--- a/src/Http/Routing/src/DefaultInlineConstraintResolver.cs
+++ b/src/Http/Routing/src/DefaultInlineConstraintResolver.cs
@@ -21,17 +21,15 @@ namespace Microsoft.AspNetCore.Routing
///
/// Initializes a new instance of the class.
///
- ///
- /// Accessor for containing the constraints of interest.
- ///
- [Obsolete("This constructor is obsolete. Use DefaultInlineConstraintResolver.ctor(IOptions, IServiceProvider) instead.")]
- public DefaultInlineConstraintResolver(IOptions routeOptions)
- {
- _inlineConstraintMap = routeOptions.Value.ConstraintMap;
- }
-
+ /// Accessor for containing the constraints of interest.
+ /// The to get service arguments from.
public DefaultInlineConstraintResolver(IOptions routeOptions, IServiceProvider serviceProvider)
{
+ if (routeOptions == null)
+ {
+ throw new ArgumentNullException(nameof(routeOptions));
+ }
+
if (serviceProvider == null)
{
throw new ArgumentNullException(nameof(serviceProvider));
diff --git a/src/Http/Routing/src/IRouteValuesAddressMetadata.cs b/src/Http/Routing/src/IRouteValuesAddressMetadata.cs
deleted file mode 100644
index 1bdae8727b..0000000000
--- a/src/Http/Routing/src/IRouteValuesAddressMetadata.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-using System;
-using System.Collections.Generic;
-
-namespace Microsoft.AspNetCore.Routing
-{
- ///
- /// Represents metadata used during link generation to find
- /// the associated endpoint using route values.
- ///
- [Obsolete("Route values are now specified on a RoutePattern.")]
- public interface IRouteValuesAddressMetadata
- {
- ///
- /// Gets the route name. Can be null.
- ///
- string RouteName { get; }
-
- ///
- /// Gets the required route values.
- ///
- IReadOnlyDictionary RequiredValues { get; }
- }
-}
diff --git a/src/Http/Routing/src/RouteValuesAddressMetadata.cs b/src/Http/Routing/src/RouteValuesAddressMetadata.cs
deleted file mode 100644
index f09ed7aab2..0000000000
--- a/src/Http/Routing/src/RouteValuesAddressMetadata.cs
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Diagnostics;
-using System.Linq;
-
-namespace Microsoft.AspNetCore.Routing
-{
- ///
- /// Metadata used during link generation to find the associated endpoint using route values.
- ///
- [DebuggerDisplay("{DebuggerToString(),nq}")]
- [Obsolete("Route values are now specified on a RoutePattern.")]
- public sealed class RouteValuesAddressMetadata : IRouteValuesAddressMetadata
- {
- private static readonly IReadOnlyDictionary EmptyRouteValues =
- new ReadOnlyDictionary(new Dictionary());
-
- ///
- /// Creates a new instance of with the provided route name.
- ///
- /// The route name. Can be null.
- public RouteValuesAddressMetadata(string routeName) : this(routeName, EmptyRouteValues)
- {
- }
-
- ///
- /// Creates a new instance of with the provided required route values.
- ///
- /// The required route values.
- public RouteValuesAddressMetadata(IReadOnlyDictionary requiredValues) : this(null, requiredValues)
- {
- }
-
- ///
- /// Creates a new instance of with the provided route name and required route values.
- ///
- /// The route name. Can be null.
- /// The required route values.
- public RouteValuesAddressMetadata(string routeName, IReadOnlyDictionary requiredValues)
- {
- if (requiredValues == null)
- {
- throw new ArgumentNullException(nameof(requiredValues));
- }
-
- RouteName = routeName;
- RequiredValues = requiredValues;
- }
-
- ///
- /// Gets the route name. Can be null.
- ///
- public string RouteName { get; }
-
- ///
- /// Gets the required route values.
- ///
- public IReadOnlyDictionary RequiredValues { get; }
-
- internal string DebuggerToString()
- {
- return $"Name: {RouteName} - Required values: {string.Join(", ", FormatValues(RequiredValues))}";
-
- IEnumerable FormatValues(IEnumerable> values)
- {
- if (values == null)
- {
- return Array.Empty();
- }
-
- return values.Select(
- kvp =>
- {
- var value = "null";
- if (kvp.Value != null)
- {
- value = "\"" + kvp.Value.ToString() + "\"";
- }
- return kvp.Key + " = " + value;
- });
- }
- }
- }
-}
\ No newline at end of file
diff --git a/src/Http/Routing/src/Tree/TreeRouteBuilder.cs b/src/Http/Routing/src/Tree/TreeRouteBuilder.cs
index f796328a82..a8a11d803b 100644
--- a/src/Http/Routing/src/Tree/TreeRouteBuilder.cs
+++ b/src/Http/Routing/src/Tree/TreeRouteBuilder.cs
@@ -24,34 +24,6 @@ namespace Microsoft.AspNetCore.Routing.Tree
private readonly ObjectPool _objectPool;
private readonly IInlineConstraintResolver _constraintResolver;
- ///
- ///
- /// This constructor is obsolete and will be removed in a future version. The recommended
- /// alternative is the overload that does not take a UrlEncoder.
- ///
- /// Initializes a new instance of .
- ///
- /// The .
- /// The .
- /// The .
- /// The .
- [Obsolete("This constructor is obsolete and will be removed in a future version. The recommended " +
- "alternative is the overload that does not take a UrlEncoder.")]
- public TreeRouteBuilder(
- ILoggerFactory loggerFactory,
- UrlEncoder urlEncoder,
- ObjectPool objectPool,
- IInlineConstraintResolver constraintResolver)
- : this(loggerFactory, objectPool, constraintResolver)
- {
- if (urlEncoder == null)
- {
- throw new ArgumentNullException(nameof(urlEncoder));
- }
-
- _urlEncoder = urlEncoder;
- }
-
///
/// Initializes a new instance of .
///
diff --git a/src/Http/Routing/test/UnitTests/DefaultInlineConstraintResolverTest.cs b/src/Http/Routing/test/UnitTests/DefaultInlineConstraintResolverTest.cs
index 63aef81de4..da4cf39c09 100644
--- a/src/Http/Routing/test/UnitTests/DefaultInlineConstraintResolverTest.cs
+++ b/src/Http/Routing/test/UnitTests/DefaultInlineConstraintResolverTest.cs
@@ -325,33 +325,12 @@ namespace Microsoft.AspNetCore.Routing.Tests
ex.Message);
}
- [Fact]
- public void ResolveConstraint_HasArguments_NoServiceProvider()
- {
- // Arrange
- var routeOptions = new RouteOptions();
- var constraintResolver = GetInlineConstraintResolver(routeOptions, hasServiceProvider: false);
-
- // Act
- var constraint = constraintResolver.ResolveConstraint("regex(ab,1)");
-
- // Assert
- Assert.IsType(constraint);
- }
-
- private IInlineConstraintResolver GetInlineConstraintResolver(RouteOptions routeOptions, bool hasServiceProvider = true)
+ private IInlineConstraintResolver GetInlineConstraintResolver(RouteOptions routeOptions)
{
var optionsAccessor = new Mock>();
optionsAccessor.SetupGet(o => o.Value).Returns(routeOptions);
- if (hasServiceProvider)
- {
- return new DefaultInlineConstraintResolver(optionsAccessor.Object, new TestServiceProvider());
- }
-
-#pragma warning disable CS0618 // Type or member is obsolete
- return new DefaultInlineConstraintResolver(optionsAccessor.Object);
-#pragma warning restore CS0618 // Type or member is obsolete
+ return new DefaultInlineConstraintResolver(optionsAccessor.Object, new TestServiceProvider());
}
private class MultiConstructorRouteConstraint : IRouteConstraint
diff --git a/src/Http/Routing/test/UnitTests/RouteValuesAddressMetadataTests.cs b/src/Http/Routing/test/UnitTests/RouteValuesAddressMetadataTests.cs
deleted file mode 100644
index 5c60f5e3ed..0000000000
--- a/src/Http/Routing/test/UnitTests/RouteValuesAddressMetadataTests.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Xunit;
-
-namespace Microsoft.AspNetCore.Routing
-{
- public class RouteValuesAddressMetadataTests
- {
- [Fact]
- public void DebuggerToString_NoNameAndRequiredValues_ReturnsString()
- {
-#pragma warning disable CS0618 // Type or member is obsolete
- var metadata = new RouteValuesAddressMetadata(null, new Dictionary());
-#pragma warning restore CS0618 // Type or member is obsolete
-
- Assert.Equal("Name: - Required values: ", metadata.DebuggerToString());
- }
-
- [Fact]
- public void DebuggerToString_HasNameAndRequiredValues_ReturnsString()
- {
-#pragma warning disable CS0618 // Type or member is obsolete
- var metadata = new RouteValuesAddressMetadata("Name!", new Dictionary
- {
- ["requiredValue1"] = "One",
- ["requiredValue2"] = 2,
- });
-#pragma warning restore CS0618 // Type or member is obsolete
-
- Assert.Equal("Name: Name! - Required values: requiredValue1 = \"One\", requiredValue2 = \"2\"", metadata.DebuggerToString());
- }
- }
-}
diff --git a/src/Http/Routing/test/UnitTests/Tree/TreeRouterTest.cs b/src/Http/Routing/test/UnitTests/Tree/TreeRouterTest.cs
index f18cb657bc..b655941c00 100644
--- a/src/Http/Routing/test/UnitTests/Tree/TreeRouterTest.cs
+++ b/src/Http/Routing/test/UnitTests/Tree/TreeRouterTest.cs
@@ -26,70 +26,6 @@ namespace Microsoft.AspNetCore.Routing.Tree
private static ObjectPool Pool = new DefaultObjectPoolProvider().Create(
new UriBuilderContextPooledObjectPolicy());
- [Fact]
- public async Task TreeRouter_RouteAsync_MatchesCatchAllRoutesWithDefaults_UsingObsoleteConstructo()
- {
- // Arrange
- var routes = new[] {
- "{parameter1=1}/{parameter2=2}/{parameter3=3}/{*parameter4=4}",
- };
- var url = "/a/b/c";
- var routeValues = new[] { "a", "b", "c", "4" };
-
- var expectedRouteGroup = CreateRouteGroup(0, "{parameter1=1}/{parameter2=2}/{parameter3=3}/{*parameter4=4}");
- var routeValueKeys = new[] { "parameter1", "parameter2", "parameter3", "parameter4" };
- var expectedRouteValues = new RouteValueDictionary();
- for (var i = 0; i < routeValueKeys.Length; i++)
- {
- expectedRouteValues.Add(routeValueKeys[i], routeValues[i]);
- }
-
- var builder = CreateBuilderUsingObsoleteConstructor();
-
- // We setup the route entries in reverse order of precedence to ensure that when we
- // try to route the request, the route with a higher precedence gets tried first.
- foreach (var template in routes.Reverse())
- {
- MapInboundEntry(builder, template);
- }
-
- var route = builder.Build();
-
- var context = CreateRouteContext(url);
-
- // Act
- await route.RouteAsync(context);
-
- // Assert
- Assert.Equal(expectedRouteGroup, context.RouteData.Values["test_route_group"]);
- foreach (var entry in expectedRouteValues)
- {
- var data = Assert.Single(context.RouteData.Values, v => v.Key == entry.Key);
- Assert.Equal(entry.Value, data.Value);
- }
- }
-
- [Fact]
- public async Task TreeRouter_RouteAsync_DoesNotMatchRoutesWithIntermediateDefaultRouteValues_UsingObsoleteConstructor()
- {
- // Arrange
- var url = "/a/b";
-
- var builder = CreateBuilderUsingObsoleteConstructor();
-
- MapInboundEntry(builder, "a/b/{parameter3=3}/d");
-
- var route = builder.Build();
-
- var context = CreateRouteContext(url);
-
- // Act
- await route.RouteAsync(context);
-
- // Assert
- Assert.Null(context.Handler);
- }
-
[Theory]
[InlineData("template/5", "template/{parameter:int}")]
[InlineData("template/5", "template/{parameter}")]
@@ -2151,23 +2087,6 @@ namespace Microsoft.AspNetCore.Routing.Tree
return builder;
}
- private static TreeRouteBuilder CreateBuilderUsingObsoleteConstructor()
- {
- var objectPoolProvider = new DefaultObjectPoolProvider();
- var objectPolicy = new UriBuilderContextPooledObjectPolicy();
- var objectPool = objectPoolProvider.Create(objectPolicy);
-
- var constraintResolver = CreateConstraintResolver();
-#pragma warning disable CS0618 // Type or member is obsolete
- var builder = new TreeRouteBuilder(
- NullLoggerFactory.Instance,
- UrlEncoder.Default,
- objectPool,
- constraintResolver);
-#pragma warning restore CS0618 // Type or member is obsolete
- return builder;
- }
-
private static TreeRouter CreateTreeRouter(
string firstTemplate,
string secondTemplate)
diff --git a/src/Mvc/Mvc.Core/test/Routing/AttributeRoutingTest.cs b/src/Mvc/Mvc.Core/test/Routing/AttributeRoutingTest.cs
index 4a1ca076d5..eb170882ed 100644
--- a/src/Mvc/Mvc.Core/test/Routing/AttributeRoutingTest.cs
+++ b/src/Mvc/Mvc.Core/test/Routing/AttributeRoutingTest.cs
@@ -174,9 +174,7 @@ namespace Microsoft.AspNetCore.Mvc.Routing
.SetupGet(o => o.Value)
.Returns(new RouteOptions());
-#pragma warning disable CS0618 // Type or member is obsolete
- var inlineConstraintResolver = new DefaultInlineConstraintResolver(routeOptions.Object);
-#pragma warning restore CS0618 // Type or member is obsolete
+ var inlineConstraintResolver = new DefaultInlineConstraintResolver(routeOptions.Object, Mock.Of());
var services = new ServiceCollection()
.AddSingleton(inlineConstraintResolver);