protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
var properties = base.CreateProperties(type, memberSerialization);
return properties != null ? properties.OrderBy(p => p.DeclaringType.BaseTypesAndSelf().Count()).ToList() : properties;
}