From 67a30e491f3722e500694cc26ab965d5d5f0bd1a Mon Sep 17 00:00:00 2001 From: YishaiGalatzer Date: Tue, 7 Oct 2014 21:43:50 -0700 Subject: [PATCH] Introduce default order for framework ordered items to be -1000 --- .../DefaultActionConstraintProvider.cs | 5 ++++- .../ControllerActionDescriptorProvider.cs | 8 +------- .../ControllerActionInvokerProvider.cs | 2 +- src/Microsoft.AspNet.Mvc.Core/DefaultOrder.cs | 12 ++++++++++++ .../Description/DefaultApiDescriptionProvider.cs | 6 +++++- .../Filters/DefaultFilterProvider.cs | 2 +- .../DefaultViewComponentInvokerProvider.cs | 2 +- src/Microsoft.AspNet.Mvc/MvcOptionsSetup.cs | 4 +--- .../BasicWebSite/ActionDescriptorCreationCounter.cs | 2 +- 9 files changed, 27 insertions(+), 16 deletions(-) create mode 100644 src/Microsoft.AspNet.Mvc.Core/DefaultOrder.cs diff --git a/src/Microsoft.AspNet.Mvc.Core/ActionConstraints/DefaultActionConstraintProvider.cs b/src/Microsoft.AspNet.Mvc.Core/ActionConstraints/DefaultActionConstraintProvider.cs index 368f513b18..2f48e4688a 100644 --- a/src/Microsoft.AspNet.Mvc.Core/ActionConstraints/DefaultActionConstraintProvider.cs +++ b/src/Microsoft.AspNet.Mvc.Core/ActionConstraints/DefaultActionConstraintProvider.cs @@ -28,7 +28,10 @@ namespace Microsoft.AspNet.Mvc } /// - public int Order { get; set; } + public int Order + { + get { return DefaultOrder.DefaultFrameworkSortOrder; } + } /// public void Invoke([NotNull] ActionConstraintProviderContext context, [NotNull] Action callNext) diff --git a/src/Microsoft.AspNet.Mvc.Core/ControllerActionDescriptorProvider.cs b/src/Microsoft.AspNet.Mvc.Core/ControllerActionDescriptorProvider.cs index 00387725bf..82b589e303 100644 --- a/src/Microsoft.AspNet.Mvc.Core/ControllerActionDescriptorProvider.cs +++ b/src/Microsoft.AspNet.Mvc.Core/ControllerActionDescriptorProvider.cs @@ -17,12 +17,6 @@ namespace Microsoft.AspNet.Mvc { public class ControllerActionDescriptorProvider : IActionDescriptorProvider { - /// - /// Represents the default order associated with this provider for dependency injection - /// purposes. - /// - public static readonly int DefaultOrder = 0; - // This is the default order for attribute routes whose order calculated from // the reflected model is null. private const int DefaultAttributeRouteOrder = 0; @@ -45,7 +39,7 @@ namespace Microsoft.AspNet.Mvc public int Order { - get { return DefaultOrder; } + get { return DefaultOrder.DefaultFrameworkSortOrder; } } public void Invoke(ActionDescriptorProviderContext context, Action callNext) diff --git a/src/Microsoft.AspNet.Mvc.Core/ControllerActionInvokerProvider.cs b/src/Microsoft.AspNet.Mvc.Core/ControllerActionInvokerProvider.cs index b93085ee27..6cb0d75487 100644 --- a/src/Microsoft.AspNet.Mvc.Core/ControllerActionInvokerProvider.cs +++ b/src/Microsoft.AspNet.Mvc.Core/ControllerActionInvokerProvider.cs @@ -30,7 +30,7 @@ namespace Microsoft.AspNet.Mvc public int Order { - get { return 0; } + get { return DefaultOrder.DefaultFrameworkSortOrder; } } public void Invoke(ActionInvokerProviderContext context, Action callNext) diff --git a/src/Microsoft.AspNet.Mvc.Core/DefaultOrder.cs b/src/Microsoft.AspNet.Mvc.Core/DefaultOrder.cs new file mode 100644 index 0000000000..a12a612953 --- /dev/null +++ b/src/Microsoft.AspNet.Mvc.Core/DefaultOrder.cs @@ -0,0 +1,12 @@ +namespace Microsoft.AspNet.Mvc +{ + public static class DefaultOrder + { + /// + /// The default order for sorting is -1000. Other framework code + /// the depends on order should be ordered between -1 to -1999. + /// User code should order at bigger than 0 or smaller than -2000. + /// + public static readonly int DefaultFrameworkSortOrder = -1000; + } +} diff --git a/src/Microsoft.AspNet.Mvc.Core/Description/DefaultApiDescriptionProvider.cs b/src/Microsoft.AspNet.Mvc.Core/Description/DefaultApiDescriptionProvider.cs index e6ad2f7dc0..8f53217742 100644 --- a/src/Microsoft.AspNet.Mvc.Core/Description/DefaultApiDescriptionProvider.cs +++ b/src/Microsoft.AspNet.Mvc.Core/Description/DefaultApiDescriptionProvider.cs @@ -34,7 +34,11 @@ namespace Microsoft.AspNet.Mvc.Description } /// - public int Order { get; private set; } + public int Order + { + get { return DefaultOrder.DefaultFrameworkSortOrder; } + } + /// public void Invoke(ApiDescriptionProviderContext context, Action callNext) diff --git a/src/Microsoft.AspNet.Mvc.Core/Filters/DefaultFilterProvider.cs b/src/Microsoft.AspNet.Mvc.Core/Filters/DefaultFilterProvider.cs index d9f9514166..69a7b2e42d 100644 --- a/src/Microsoft.AspNet.Mvc.Core/Filters/DefaultFilterProvider.cs +++ b/src/Microsoft.AspNet.Mvc.Core/Filters/DefaultFilterProvider.cs @@ -17,7 +17,7 @@ namespace Microsoft.AspNet.Mvc.Filters public int Order { - get { return 0; } + get { return DefaultOrder.DefaultFrameworkSortOrder; } } protected IServiceProvider ServiceProvider { get; private set; } diff --git a/src/Microsoft.AspNet.Mvc.Core/ViewComponents/DefaultViewComponentInvokerProvider.cs b/src/Microsoft.AspNet.Mvc.Core/ViewComponents/DefaultViewComponentInvokerProvider.cs index 9f85e7a51b..6a25329604 100644 --- a/src/Microsoft.AspNet.Mvc.Core/ViewComponents/DefaultViewComponentInvokerProvider.cs +++ b/src/Microsoft.AspNet.Mvc.Core/ViewComponents/DefaultViewComponentInvokerProvider.cs @@ -20,7 +20,7 @@ namespace Microsoft.AspNet.Mvc public int Order { - get { return 0; } + get { return DefaultOrder.DefaultFrameworkSortOrder; } } public void Invoke([NotNull] ViewComponentInvokerProviderContext context, [NotNull] Action callNext) diff --git a/src/Microsoft.AspNet.Mvc/MvcOptionsSetup.cs b/src/Microsoft.AspNet.Mvc/MvcOptionsSetup.cs index 955f03606f..de1ab811db 100644 --- a/src/Microsoft.AspNet.Mvc/MvcOptionsSetup.cs +++ b/src/Microsoft.AspNet.Mvc/MvcOptionsSetup.cs @@ -3,7 +3,6 @@ using Microsoft.AspNet.Mvc.ModelBinding; using Microsoft.AspNet.Mvc.Razor; -using Microsoft.AspNet.Mvc.Rendering; using Microsoft.Framework.OptionsModel; namespace Microsoft.AspNet.Mvc @@ -14,10 +13,9 @@ namespace Microsoft.AspNet.Mvc public class MvcOptionsSetup : IOptionsSetup { /// - /// Order is -1 to allow MvcOptionsSetup to run before a user call to SetupOptions. public int Order { - get { return -1; } + get { return DefaultOrder.DefaultFrameworkSortOrder; } } /// diff --git a/test/WebSites/BasicWebSite/ActionDescriptorCreationCounter.cs b/test/WebSites/BasicWebSite/ActionDescriptorCreationCounter.cs index 73a30a3e35..adb538d576 100644 --- a/test/WebSites/BasicWebSite/ActionDescriptorCreationCounter.cs +++ b/test/WebSites/BasicWebSite/ActionDescriptorCreationCounter.cs @@ -22,7 +22,7 @@ namespace BasicWebSite { get { - return ControllerActionDescriptorProvider.DefaultOrder - 100; + return DefaultOrder.DefaultFrameworkSortOrder - 100; } }