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); } }
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); }
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); }