/// <summary> /// Adds a distributed cache to the resulting <see cref="IReadOnlyCache{TKey,TValue}"/> with a way to convert the /// <typeparamref name="TValue"/> to string and the <typeparamref name="TValue"/> to bytes. /// </summary> /// <param name="distributedCache">The distributed cache.</param> /// <param name="keyValueSerializer"><typeparamref name="TKey"/>/<typeparamref name="TValue"/> serializer.</param> /// <param name="keyPrefix">Prefix prepended to the distributed cache key.</param> /// <exception cref="ArgumentNullException"><paramref name="distributedCache"/> or <paramref name="keyValueSerializer"/> is null.</exception> /// <returns>A reference to this instance.</returns> public ReadOnlyCacheBuilder <TKey, TValue> WithDistributedCache(IAsyncCache distributedCache, IKeyValueSerializer <TKey, TValue> keyValueSerializer, string?keyPrefix = null) { _distributedCache = distributedCache ?? throw new ArgumentNullException(nameof(distributedCache)); _keyValueSerializer = keyValueSerializer ?? throw new ArgumentNullException(nameof(keyValueSerializer)); _keyPrefix = keyPrefix; return(this); }
public void RegisterHashSet <T>(IKeyValueSerializer <T> serializer = null) where T : class, new() { serializer ??= new KeyValueSerializer <T>(loggerFactory.CreateLogger <KeyValueSerializer <T> >()); var serialization = new HashSetSerialization <T>(loggerFactory.CreateLogger <HashSetSerialization <T> >(), serializer); var persistency = new ObjectListSerialization <T>(loggerFactory.CreateLogger <ObjectListSerialization <T> >(), link, serialization, new RedisSet(loggerFactory.CreateLogger <RedisSet>(), link, link.IndexManager), link.IndexManager); link.Register(persistency); }
public void RegisterHashsetSingle <T>(IKeyValueSerializer <T> serializer = null) where T : class, new() { serializer ??= new KeyValueSerializer <T>(loggerFactory.CreateLogger <KeyValueSerializer <T> >()); var serialization = new HashSetSerialization <T>(loggerFactory.CreateLogger <HashSetSerialization <T> >(), serializer); var persistency = new SingleItemSerialization <T>(loggerFactory.CreateLogger <SingleItemSerialization <T> >(), link, serialization, link.IndexManager); link.Register(persistency); }
public ProductKeyValueDataOperations(IKeyValueSerializer <Product> keyValueSerializer) { this.keyValueSerializer = keyValueSerializer; KeyValueStoreInstance = KeyValueStoreOperations.Instance; }
public HashSetSerialization(ILogger <HashSetSerialization <T> > log, IKeyValueSerializer <T> serializer) { this.log = log ?? throw new ArgumentNullException(nameof(log)); this.serializer = serializer ?? throw new ArgumentNullException(nameof(serializer)); }