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;
}
}