/// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public virtual DateTime ReadDateTime()
        {
            ReadLeadingByte();

            if (LeadingByte.IsCompactDateTime())
            {
                var minutes = ReadUnpackedInt32();
                return(DateTimeExtension.FromMinutes(minutes));
            }

            if (false == LeadingByte.IsUnpackedDateTime())
            {
                throw new HessianSerializerException();
            }

            return(DateTimeExtension.FromMilliseconds(ReadUnpackedInt64()));
        }