public void Parse(ProtoBuf.ProtoReader source) { int fieldNumber = 0; while ((fieldNumber = source.ReadFieldHeader()) > 0) { switch (fieldNumber) { default: source.SkipField(); break; case 1: //valueType LABEL_REQUIRED TYPE_ENUM .ProtoTable.UnionCellType TwosComplement valueType = (ProtoTable.UnionCellType)source.ReadInt32(); break; case 2: //eValues LABEL_OPTIONAL TYPE_MESSAGE .ProtoTable.EveryValue TwosComplement eValues = new ProtoTable.EveryValue(); ProtoBuf.SubItemToken eValuestoken = ProtoBuf.ProtoReader.StartSubItem(source); eValues.Parse(source); ProtoBuf.ProtoReader.EndSubItem(eValuestoken, source); break; case 3: //fixValue LABEL_OPTIONAL TYPE_INT32 TwosComplement fixValue = source.ReadInt32(); break; case 4: //fixInitValue LABEL_OPTIONAL TYPE_INT32 TwosComplement fixInitValue = source.ReadInt32(); break; case 5: //fixLevelGrow LABEL_OPTIONAL TYPE_INT32 TwosComplement fixLevelGrow = source.ReadInt32(); break; } } }