Skip to content

Instantly share code, notes, and snippets.

@pdwetz
Created January 30, 2013 17:59
Show Gist options
  • Save pdwetz/4675198 to your computer and use it in GitHub Desktop.
Save pdwetz/4675198 to your computer and use it in GitHub Desktop.
JsonBindingConvention for FubuMVC; tells it to use Json.Net for parsing input models for the JsonInput attribute.
using System;
using System.Collections.Generic;
using System.Linq;
using FubuMVC.Core.Registration;
using FubuMVC.Core.Registration.Nodes;
using FubuMVC.Core.Resources.Conneg;
using FubuMVC.Core.Runtime.Formatters;
using FubuMVC.Json;
public class JsonBindingConvention : IConfigurationAction
{
public void Configure(BehaviorGraph graph)
{
graph
.Behaviors
.Where(c => c.FirstCall().HasAttribute<JsonInputAttribute>())
.Each(chain => chain.UseJsonBinding());
}
}
public static class JsonBinder
{
public static void UseJsonBinding(this BehaviorChain chain)
{
chain.ApplyConneg();
chain.Output.AddFormatter<JsonFormatter>();
chain.Input.ClearAll();
chain.Input.Readers.Prepend(new NewtonSoftReaderNode(chain.InputType()));
}
}
public class JsonInputAttribute : Attribute { }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment