private bool disposedValue = false; // To detect redundant calls void Dispose(bool disposing) { if (!disposedValue) { if (disposing) { // TODO: dispose managed state (managed objects). if (_decorated != null) { _decorated.Dispose(); _decorated = null; } if (_transactionScope != null) { if (!_changesCommited) { CommitChanges(); } _transactionScope.Dispose(); _transactionScope = null; } } // TODO: free unmanaged resources (unmanaged objects) and override a finalizer below. // TODO: set large fields to null. disposedValue = true; } }
public CustomerComponentUow(ICustomerComponent decorated) { _decorated = decorated ?? throw new ArgumentNullException(nameof(decorated)); _transactionScope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled); }