Exemplo n.º 1
0
        public Guid?Deserialize(byte[] bytes, int offset, IFormatterResolver formatterResolver, out int readSize)
        {
            var segment = MessagePackBinary.ReadStringSegment(bytes, offset, out readSize);

            try
            {
                var guid = new GuidBits(segment);
                return(guid.Value);
            }
            catch
            {
                return(null);
            }
        }
Exemplo n.º 2
0
        public Guid Deserialize(ref MessagePackReader reader, MessagePackSerializerOptions options)
        {
            ReadOnlySequence <byte> segment = reader.ReadStringSequence().Value;

            if (segment.Length != 36)
            {
                throw new MessagePackSerializationException("Unexpected length of string.");
            }

            GuidBits result;

            if (segment.IsSingleSegment)
            {
                result = new GuidBits(segment.First.Span);
            }
            else
            {
                Span <byte> bytes = stackalloc byte[36];
                segment.CopyTo(bytes);
                result = new GuidBits(bytes);
            }

            return(result.Value);
        }
Exemplo n.º 3
0
        public Guid Deserialize(ref MessagePackReader reader, IFormatterResolver resolver)
        {
            var segment = reader.ReadStringSegment();

            if (segment.Length != 36)
            {
                throw new InvalidOperationException("Unexpected length of string.");
            }

            GuidBits result;

            if (segment.IsSingleSegment)
            {
                result = new GuidBits(segment.First.Span);
            }
            else
            {
                Span <byte> bytes = stackalloc byte[36];
                segment.CopyTo(bytes);
                result = new GuidBits(bytes);
            }

            return(result.Value);
        }