With a simple class/interface like this
public interface IThing
{
string Name { get; set; }
}
public class Thing : IThing
{
public int Id { get; se
Inspired by @user3161686, here's a small modification to InterfaceContractResolver:
public class InterfaceContractResolver : DefaultContractResolver where TInterface : class
{
protected override IList CreateProperties(Type type, MemberSerialization memberSerialization)
{
IList properties = base.CreateProperties(typeof(TInterface), memberSerialization);
return properties;
}
}