public void writeModel(BinaryWriter writer, ModelBasic value) { writeByte(writer, ParamType.MODEL); writeUTF(writer, value.getModelNameSpace()); Type type = value.GetType(); PropertyInfo[] properties = type.GetProperties(); writeInt(writer, properties.Length); foreach (PropertyInfo item in properties) { writeUTF(writer, item.Name); writeAll(writer, item.GetValue(value, null)); } }
public ModelBasic readModel(BinaryReader reader) { ModelBasic model = null; string nameSpace = readString(reader); Type modelCls = ContextUtil.getInstance(null).getModel(nameSpace); model = (ModelBasic)System.Activator.CreateInstance(modelCls); int len = reader.ReadInt32(); string fieldName; PropertyInfo property; for (int loop = 0; loop < len; loop++) { fieldName = readString(reader); object param = readAll(reader); property = modelCls.GetProperty(fieldName); property.SetValue(model, param, null); } return(model); }