public void Put(TKey key, Stream stream, uint length) { if ((object)key == null) { throw new ArgumentNullException("key"); } if (length == 0) { Delete(key); return; } var action = FirkinHashChangeAction.Add; lock (_indexSyncRoot) { var keyBytes = _serializer.Serialize(key); if (keyBytes.LongLength > MaxKeySize) { throw new KeyTooLargeException(keyBytes.LongLength, MaxKeySize); } var keyInfo = _head.Write(new KeyValuePair() { Key = keyBytes, Value = stream, ValueSize = length }); if (_changeObserver != null) { action = _index.ContainsKey(key) ? FirkinHashChangeAction.Change : FirkinHashChangeAction.Add; } _index[key] = keyInfo; CheckHead(); } if (_changeObserver != null) { _changeObserver(new FirkinHashChange <TKey>(key, action)); } }
public void Write <T>(RegistryEntity <T> registryEntity) { try { byte[] serializedValue = _byteArraySerializer?.Serialize(registryEntity.Value); _registryKey?.SetValue(registryEntity.Name, serializedValue, registryEntity.RegistryValueKind); } catch (Exception e) when(e is ArgumentException || e is ObjectDisposedException || e is UnauthorizedAccessException || e is SecurityException || e is IOException) { Console.WriteLine(e.ToString()); } catch (SerializationException e) { throw e; } }