Project DescriptionFluentDataContract provides a fluent configuration API to apply commonly needed serialization options to a POCO (and it's properties).
I originally called this FluentJson.NET, but realized it would be better to abstract it to a general serialization attribute replacement in the same way FluentValidation is a validation attribute replacement. Following FluentValidation as a template, with (at the moment) Json.NET in mind, FluentDataContract was born. Note that the use of DataContract does not mean this is for WCF. This is
not a WCF thingy (although an adapter could be made for it).
Available on
NuGet as
http://nuget.org/packages/FluentDataContract Example
[DataContract(typeof(AppleContract))]
public class Apple
{
public int Id { get; set; }
public string Colour { get; set; }
public DateTime Expiry { get; set; }
public object SomethingNullable { get; set; }
}
public class AppleContract : AbstractDataContract<Apple>
{
public AppleContract()
{
Object().ExcludeDefaultValues()
.IncludeProperty(o => o.Colour)
.IncludeProperty(o => o.Expiry)
.IncludeProperty(o => o.SomethingNullable).ExcludeNullValues();
}
}