public object ReadObject()

in src/NMS.AMQP/Message/NmsStreamMessage.cs [313:351]


        public object ReadObject()
        {
            CheckWriteOnlyBody();
            CheckBytesInFlight();

            object result;
            object value = facade.Peek();
            if (value == null)
                result = null;
            else if (value is string)
                result = value;
            else if (value is float)
                result = value;
            else if (value is double)
                result = value;
            else if (value is long)
                result = value;
            else if (value is int)
                result = value;
            else if (value is short)
                result = value;
            else if (value is byte)
                result = value;
            else if (value is bool)
                result = value;
            else if (value is char)
                result = value;
            else if (value is byte[] original)
            {
                byte[] bytesResult = new byte[original.Length];
                Array.Copy(original, 0, bytesResult, 0, original.Length);
                result = bytesResult;
            }
            else
                throw new MessageFormatException("stream value: " + value.GetType().Name + " cannot be converted to int.");

            facade.Pop();
            return result;
        }