public object Deserialize(_Row item) { var o = Construct(); _Deserialize(item, o); return(o); }
public _Row Serialize(object item) { var row = new _Row(_entity.Columns.Select(column => { var spec = _entity.Columns[column.Path]; var axs = Properties[column.Path]; var data = axs.Get(item); return(Write(data, spec)); })); _Deserialize(row, item); return(row); }
protected void _Deserialize(_Row item, object instance) { var zip = Columns.Zip(item.Cells, Tuple.Create); foreach (var pair in zip) { var spec = pair.Item1; var cell = pair.Item2; if (cell.ValueType == ColumnType.Null) { continue; } var axs = Properties[spec.Path]; var data = Read(cell, spec); axs.Set(instance, data); } }
object Extract(_Row row) => Serializer.Deserialize(row);