public void WriteSchema(object obj, Type type) { FieldInfo[] fields = SchemaUtils.GetSchemaMembers(type); for (int i = 0; i < fields.Length; i++) { var field = fields[i]; if (field.Attributes.HasFlag(FieldAttributes.NotSerialized)) { continue; } var dataType = field.FieldType; var value = field.GetValue(obj); Write(value, dataType); } }
public object ReadSchema(Type type) { FieldInfo[] fields = SchemaUtils.GetSchemaMembers(type); object obj = Activator.CreateInstance(type); for (int i = 0; i < fields.Length; i++) { var field = fields[i]; if (field.Attributes.HasFlag(FieldAttributes.NotSerialized)) { continue; } var dataType = field.FieldType; field.SetValue(obj, Read(dataType)); } return(obj); }