public virtual void FromJson(string content) { Clear(); PMT.RE.ListTmp tmp = new PMT.RE.ListTmp(content); for (int i = 0; i < tmp.Count; i++) { PMT.RE.IEntity entity = Activator.CreateInstance(typeof(T)) as PMT.RE.IEntity; if (entity != null) { entity.FromJson(tmp[i]); Add((T)entity); } } }
public void FromAttr(BaseField attr) { fieldtype = attr.fieldtype; isMulti = attr.multi; isMultilingual = attr.multilingual; sort = attr.sort; PMT.RE.IEntity entity = (attr as PMT.RE.IEntity); if (entity != null) { attribute = entity.ToString(); } }
public void writeField(Unit unit, Object obj) { FieldInfo[] fields = obj.GetType().GetFields(); foreach (FieldInfo field in fields) { BaseField field_attr = field.GetCustomAttribute <BaseField>(); if (field_attr != null) { Object value = field.GetValue(obj); if (value == null) { value = Activator.CreateInstance(field.FieldType); field.SetValue(obj, value); } Unit uProp = CML.ComUtility.QueryFirst <Unit>( from x in db where x.parent == unit.key where x.name == field.Name select x, null); if (field_attr.type == UnitType.Field) { if (uProp != null) { PMT.RE.IEntity entity = value as PMT.RE.IEntity; if (entity != null) { entity.FromJson(uProp.content); } } } else if (field_attr.type == UnitType.Container) { if (uProp != null) { writeChildren(uProp, value); writeField(uProp, value); } } } } }