private void Consumer_Received(object sender, BasicDeliverEventArgs e) { RemoteKey remoteKey = Extension.ObjectExtension.Deserialize <RemoteKey>(e.Body.ToArray()); //RemoteKey remoteKey = Extension.ObjectExtension.Deserialize<RemoteKey>(e.Body); if (remoteKey.Guid != guid) { CacheSynchronizingEventArgs cacheSynchronizingEventArgs = new CacheSynchronizingEventArgs() { Key = remoteKey.Key }; OnSynchronizing?.Invoke(sender, cacheSynchronizingEventArgs); if (!cacheSynchronizingEventArgs.Cancel) { memoryCache.Remove(remoteKey.Key); if (keyMapDictionary.ContainsKey(remoteKey.Key)) { memoryCache.Remove(keyMapDictionary[remoteKey.Key]); } OnSynchronized?.Invoke(sender, new CacheSynchronizedEventArgs() { Key = remoteKey.Key }); } } ((EventingBasicConsumer)sender).Model.BasicAck(deliveryTag: e.DeliveryTag, multiple: true); }
void ICache.Remove(string key) { memoryCache.Remove(key); RemoteKey remoteKey = new RemoteKey() { Key = key, Guid = guid }; channel.BasicPublish(exchange: exchangeName, routingKey: cacheRemoveRoutingName, basicProperties: null, body: Extension.ObjectExtension.Serialize(remoteKey)); }