/// <summary> /// Writes to destination. /// </summary> public void WriteToDestination() { try { if (_alreadyWritten) { throw ExceptionFactory.CreateOperationForbiddenException("Already written"); } ExtractToDestination(); } catch (Exception ex) { throw ex.Handle(); } finally { _alreadyWritten = true; foreach (var one in _data) { one.Value.SafeDispose(); } } }