public override void Deserialize(IBinaryAccessor accessor) { _applyToMembers = accessor.ReadBoolean(); _exclude = accessor.ReadBoolean(); _feature = accessor.ReadLengthPrefixedString(Encoding.Unicode); _stripAfterObfuscation = accessor.ReadBoolean(); }
public override void Deserialize(IBinaryAccessor accessor) { _category = accessor.ReadLengthPrefixedString(Encoding.Unicode); _checkId = accessor.ReadLengthPrefixedString(Encoding.Unicode); _justification = accessor.ReadLengthPrefixedString(Encoding.Unicode); _messageId = accessor.ReadLengthPrefixedString(Encoding.Unicode); _scope = accessor.ReadLengthPrefixedString(Encoding.Unicode); _target = accessor.ReadLengthPrefixedString(Encoding.Unicode); }
public override void Deserialize(IBinaryAccessor accessor) { _culture = accessor.ReadLengthPrefixedString(Encoding.Unicode); }
private void StateLoadInstructions(IBinaryAccessor accessor, Module module) { int instructionCount = accessor.Read7BitEncodedInt(); _instructions = new List <Instruction>(instructionCount); for (int i = 0; i < instructionCount; i++) { OpCode opCode; byte opByte = accessor.ReadByte(); if (opByte == 0xFE) { opByte = accessor.ReadByte(); opCode = OpCodes.OpCodeArray[256 + opByte]; } else { opCode = OpCodes.OpCodeArray[opByte]; } object value; switch (opCode.OperandType) { case OperandType.InlineBrTarget: { value = accessor.ReadInt32(); } break; case OperandType.InlineField: { int token = accessor.ReadInt32(); value = module.GetSignature <Signature>(token); } break; case OperandType.InlineI: { value = accessor.ReadInt32(); } break; case OperandType.InlineI8: { value = accessor.ReadInt64(); } break; case OperandType.InlineMethod: { int token = accessor.ReadInt32(); value = module.GetSignature <Signature>(token); } break; case OperandType.InlineR: { value = accessor.ReadDouble(); } break; case OperandType.InlineSig: { int token = accessor.ReadInt32(); value = module.GetSignature <Signature>(token); } break; case OperandType.InlineString: { // Token of a userdefined string, whose RID portion is actually an offset in the #US blob stream. value = accessor.ReadLengthPrefixedString(Encoding.Unicode); } break; case OperandType.InlineSwitch: { int count = accessor.ReadInt32(); int[] targets = new int[count]; for (int j = 0; j < count; j++) { targets[j] = accessor.ReadInt32(); } value = targets; } break; case OperandType.InlineTok: { int token = accessor.ReadInt32(); value = module.GetSignature <Signature>(token); } break; case OperandType.InlineType: { int token = accessor.ReadInt32(); value = module.GetSignature <Signature>(token); } break; case OperandType.InlineVar: { value = accessor.ReadInt16(); } break; case OperandType.ShortInlineBrTarget: { value = accessor.ReadSByte(); } break; case OperandType.ShortInlineI: { value = accessor.ReadByte(); } break; case OperandType.ShortInlineR: { value = accessor.ReadSingle(); } break; case OperandType.ShortInlineVar: { value = accessor.ReadByte(); } break; default: { value = null; } break; } _instructions.Add(new Instruction(opCode, value)); } }