Ejemplo n.º 1
0
        public Task <ILazinator> Get <TKey>(ILazinator key) where TKey : ILazinator
        {
            string stringKey = key.ToString();

            if (Storage.ContainsKey(stringKey))
            {
                ReadOnlyMemory <byte> memory          = Storage[stringKey];
                LazinatorMemory       lazinatorMemory = new LazinatorMemory(memory);
                ILazinator            result;
                result = DeserializationFactory.Instance.CreateFromBytesIncludingID(lazinatorMemory);
                return(Task.FromResult(result));
            }
            return(Task.FromResult(default(ILazinator)));
        }
Ejemplo n.º 2
0
        public Task <TValue> Get <TKey, TValue>(ILazinator key) where TKey : ILazinator where TValue : ILazinator
        {
            string stringKey = key.ToString();

            if (Storage.ContainsKey(stringKey))
            {
                ReadOnlyMemory <byte> memory          = Storage[stringKey];
                LazinatorMemory       lazinatorMemory = new LazinatorMemory(memory);
                TValue result;
                try
                {
                    result = (TValue)DeserializationFactory.Instance.CreateFromBytesIncludingID(lazinatorMemory);
                }
                catch (InvalidCastException)
                {
                    throw new LazinatorDeserializationException($"Item stored at key {key} was not of expected type {typeof(TValue)}.");
                }
                return(Task.FromResult(result));
            }
            return(Task.FromResult(default(TValue)));
        }