public T Deserialize <T>(BinaryValue data) { IReliableStateSerializer <T> serializer = this.serializerResolver.Resolve <T>(this.collectionName, SerializationIntent.Replication); using (MemoryStream stream = new MemoryStream(data.Buffer)) { return(serializer.Deserialize(stream)); } }
public async Task <TValue> GetOrAddAsync( ITransaction tx, TKey key, Func <TKey, TValue> valueFactory, TimeSpan timeout, CancellationToken cancellationToken) { BinaryValue result = await this.store.GetOrAddAsync( tx, this.converter.Serialize <TKey>(key), k => this.converter.Serialize <TValue>(valueFactory(this.converter.Deserialize <TKey>(k))), timeout, cancellationToken); return(this.converter.Deserialize <TValue>(result)); }
public async Task <TValue> AddOrUpdateAsync( ITransaction tx, TKey key, TValue addValue, Func <TKey, TValue, TValue> updateValueFactory, TimeSpan timeout, CancellationToken cancellationToken) { BinaryValue result = await this.store.AddOrUpdateAsync( tx, this.converter.Serialize <TKey>(key), this.converter.Serialize <TValue>(addValue), (k, v) => this.converter.Serialize <TValue>(updateValueFactory(this.converter.Deserialize <TKey>(k), this.converter.Deserialize <TValue>(v))), timeout, cancellationToken); return(this.converter.Deserialize <TValue>(result)); }