private void WriteModelMetaData(JsonWriter writer, Model.MetaData obj) { var t = obj.GetType(); var properties = t.GetProperties(); writer.WriteStartObject(); foreach (var property in properties) { writer.WritePropertyName(property.Name); writer.WriteValue(property.GetValue(obj)); } writer.WriteEndObject(); }
private Model.MetaData ReadMetaData(JsonReader reader) { if (reader.TokenType == JsonToken.Null) { return(null); } var obj = new Model.MetaData { }; var t = obj.GetType(); while (reader.Read()) { switch (reader.TokenType) { case JsonToken.PropertyName: var propertyName = reader.Value.ToString(); if (!reader.Read()) { throw new JsonSerializationException("Unexpected end when reading Model object"); } var p = t.GetProperty(propertyName); if (p.PropertyType == typeof(DateTime)) { var d = DateTime.Parse(reader.Value as string).ToUniversalTime(); p.SetValue(obj, d); break; } p.SetValue(obj, reader.Value); break; case JsonToken.Comment: break; case JsonToken.EndObject: return(obj); } } throw new JsonSerializationException("Unexpected end when reading Model object"); }