Use Json.Net for MVC ValueProviderFactory

This commit is contained in:
Gary Sharp
2016-10-06 19:39:19 +11:00
parent e082c22983
commit 1dfa3f4f15
13 changed files with 51 additions and 45 deletions
+11 -2
View File
@@ -1,4 +1,5 @@
using System.Web;
using Disco.Web.Extensions;
using System.Linq;
using System.Web.Mvc;
namespace Disco.Web
@@ -7,7 +8,15 @@ namespace Disco.Web
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
//filters.Add(new HandleErrorAttribute());
// Remove Default Json Value Provider Factory (JavaScriptSerializer)
var defaultJsonValueProvider = ValueProviderFactories.Factories.OfType<JsonValueProviderFactory>().FirstOrDefault();
if (defaultJsonValueProvider != null)
{
ValueProviderFactories.Factories.Remove(defaultJsonValueProvider);
}
// Add Custom Json Value Provider Factory (Json.Net)
ValueProviderFactories.Factories.Add(new JsonDotNetValueProviderFactory());
}
}
}
-1
View File
@@ -22,7 +22,6 @@
<IISExpressUseClassicPipelineMode />
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
<RestorePackages>true</RestorePackages>
<AssemblyVersion>2.2.16272.1003</AssemblyVersion>
<UseGlobalApplicationHostFile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+1 -28
View File
@@ -24,19 +24,9 @@ namespace Disco.Web
protected void Application_Start()
{
var timer = new Stopwatch();
long timer_last;
timer.Start();
Debug.WriteLine("Application Startup Profiling Started");
timer_last = timer.ElapsedMilliseconds;
if (AppConfig.InitializeDatabase())
{
// Database Initialized
Debug.WriteLine("Initialized Database: +{0}ms", timer.ElapsedMilliseconds - timer_last);
timer_last = timer.ElapsedMilliseconds;
using (DiscoDataContext database = new DiscoDataContext())
{
@@ -64,33 +54,15 @@ namespace Disco.Web
AreaRegistration.RegisterAllAreas();
Debug.WriteLine("Registered Areas: +{0}ms", timer.ElapsedMilliseconds - timer_last);
timer_last = timer.ElapsedMilliseconds;
WebApiConfig.Register(GlobalConfiguration.Configuration);
Debug.WriteLine("Registered API: +{0}ms", timer.ElapsedMilliseconds - timer_last);
timer_last = timer.ElapsedMilliseconds;
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
Debug.WriteLine("Registered Global Filters: +{0}ms", timer.ElapsedMilliseconds - timer_last);
timer_last = timer.ElapsedMilliseconds;
RouteConfig.RegisterRoutes(RouteTable.Routes);
Debug.WriteLine("Registered Routes: +{0}ms", timer.ElapsedMilliseconds - timer_last);
timer_last = timer.ElapsedMilliseconds;
BundleConfig.RegisterBundles();
Debug.WriteLine("Registered Bundles: +{0}ms", timer.ElapsedMilliseconds - timer_last);
timer_last = timer.ElapsedMilliseconds;
AppConfig.InitalizeNormalEnvironment(database);
Debug.WriteLine("Initialized Environment: +{0}ms", timer.ElapsedMilliseconds - timer_last);
timer_last = timer.ElapsedMilliseconds;
}
else
{
@@ -107,6 +79,7 @@ namespace Disco.Web
// Database Not Initialized
// Install
InitialConfig = true;
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterInstallRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles();
}