public override void WriteJson(object data, JsonWriter writer)
{
var type = data.GetType();
writer.StartObject();
foreach (var prop in type.GetProperties(BindingFlags.Public | BindingFlags.Instance))
{
if (prop.IsSpecialName)
{
continue;
}
writer.WriteKey(prop.Name);
writer.WriteValue(prop.GetValue(data, null));
}
foreach (var field in type.GetFields(BindingFlags.Public | BindingFlags.Instance))
{
if (field.IsSpecialName || field.IsNotSerialized)
{
continue;
}
writer.WriteKey(field.Name);
writer.WriteValue(field.GetValue(data));
}
writer.EndObject();
}