public int Deserialize(byte[] buffer, int offset, int end)
{
byte header = buffer.ReadUInt8(offset++);
if ((MessageType)(header >> 4) != MessageType.Error)
throw new Exception("Could not deserialize an unconfirmed request message");
this.InvokeId = buffer.ReadUInt8(offset++);
this.ServiceChoice = buffer.ReadUInt8(offset++);
ServiceError error;
offset = Tags.Decode(buffer, offset, out error);
this.Error = error;
return offset;
}