Beispiel #1
0
        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));
            }
        }
Beispiel #2
0
        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);
        }