Esempio n. 1
0
        public unsafe void Read <T>(IntPtr data, ref int index, int length, ref T result)
        {
            int references = 0;

            if (index >= length)
            {
                throw new DataCorruptedException("Unexpected end of data");
            }
            var start = (byte *)(data + index);

            if (*start == (byte)GroBufTypeCode.Reference)
            {
                if (index + 5 >= length)
                {
                    throw new DataCorruptedException("Unexpected end of data");
                }
                references = *(int *)(start + 1);
                index     += 5;
            }
            GetReader <T>(false)(data, ref index, ref result, new ReaderContext(serializerId, length, index, references));
        }
 /// <inheritdoc />
 public TModel Read(TSrc source)
 {
     return(GetReader()(source));
 }
Esempio n. 3
0
 public void Read(XElement source, T target) => GetReader()(source, target);