Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / CompMod / System / ComponentModel / Design / DesignerTransaction.cs / 1 / DesignerTransaction.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ namespace System.ComponentModel.Design { using System; using System.Security.Permissions; ////// Identifies a transaction within a designer. Transactions are /// used to wrap serveral changes into one unit of work, which /// helps performance. /// [HostProtection(SharedState = true)] [System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.InheritanceDemand, Name = "FullTrust")] public abstract class DesignerTransaction : IDisposable { private bool committed = false; private bool canceled = false; private bool suppressedFinalization = false; private string desc; ////// protected DesignerTransaction() : this("") { } ///[To be supplied.] ////// protected DesignerTransaction(string description) { this.desc = description; } ///[To be supplied.] ////// public bool Canceled { get { return canceled; } } ///[To be supplied.] ////// public bool Committed { get { return committed; } } ///[To be supplied.] ////// public string Description { get { return desc; } } ///[To be supplied.] ////// public void Cancel() { if (!canceled && !committed) { canceled = true; GC.SuppressFinalize(this); suppressedFinalization = true; OnCancel(); } } ///[To be supplied.] ////// Commits this transaction. Once a transaction has /// been committed, further calls to this method /// will do nothing. You should always call this /// method after creating a transaction to ensure /// that the transaction is closed properly. /// public void Commit() { if (!committed && !canceled) { committed = true; GC.SuppressFinalize(this); suppressedFinalization = true; OnCommit(); } } ////// User code should implement this method to perform /// the actual work of committing a transaction. /// protected abstract void OnCancel(); ////// User code should implement this method to perform /// the actual work of committing a transaction. /// protected abstract void OnCommit(); ////// Overrides Object to commit this transaction /// in case the user forgot. /// ~DesignerTransaction() { Dispose(false); } ////// /// Private implementation of IDisaposable. /// When a transaction is disposed it is /// committed. /// void IDisposable.Dispose() { Dispose(true); // note - Dispose calls Cancel which sets this bit, so // this should never be hit. // if (!suppressedFinalization) { System.Diagnostics.Debug.Fail("Invalid state. Dispose(true) should have called cancel which does the SuppressFinalize"); GC.SuppressFinalize(this); } } protected virtual void Dispose(bool disposing) { System.Diagnostics.Debug.Assert(disposing, "Designer transaction garbage collected, unable to cancel, please Cancel, Close, or Dispose your transaction."); System.Diagnostics.Debug.Assert(disposing || canceled || committed, "Disposing DesignerTransaction that has not been comitted or canceled; forcing Cancel" ); Cancel(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ namespace System.ComponentModel.Design { using System; using System.Security.Permissions; ////// Identifies a transaction within a designer. Transactions are /// used to wrap serveral changes into one unit of work, which /// helps performance. /// [HostProtection(SharedState = true)] [System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.InheritanceDemand, Name = "FullTrust")] public abstract class DesignerTransaction : IDisposable { private bool committed = false; private bool canceled = false; private bool suppressedFinalization = false; private string desc; ////// protected DesignerTransaction() : this("") { } ///[To be supplied.] ////// protected DesignerTransaction(string description) { this.desc = description; } ///[To be supplied.] ////// public bool Canceled { get { return canceled; } } ///[To be supplied.] ////// public bool Committed { get { return committed; } } ///[To be supplied.] ////// public string Description { get { return desc; } } ///[To be supplied.] ////// public void Cancel() { if (!canceled && !committed) { canceled = true; GC.SuppressFinalize(this); suppressedFinalization = true; OnCancel(); } } ///[To be supplied.] ////// Commits this transaction. Once a transaction has /// been committed, further calls to this method /// will do nothing. You should always call this /// method after creating a transaction to ensure /// that the transaction is closed properly. /// public void Commit() { if (!committed && !canceled) { committed = true; GC.SuppressFinalize(this); suppressedFinalization = true; OnCommit(); } } ////// User code should implement this method to perform /// the actual work of committing a transaction. /// protected abstract void OnCancel(); ////// User code should implement this method to perform /// the actual work of committing a transaction. /// protected abstract void OnCommit(); ////// Overrides Object to commit this transaction /// in case the user forgot. /// ~DesignerTransaction() { Dispose(false); } ////// /// Private implementation of IDisaposable. /// When a transaction is disposed it is /// committed. /// void IDisposable.Dispose() { Dispose(true); // note - Dispose calls Cancel which sets this bit, so // this should never be hit. // if (!suppressedFinalization) { System.Diagnostics.Debug.Fail("Invalid state. Dispose(true) should have called cancel which does the SuppressFinalize"); GC.SuppressFinalize(this); } } protected virtual void Dispose(bool disposing) { System.Diagnostics.Debug.Assert(disposing, "Designer transaction garbage collected, unable to cancel, please Cancel, Close, or Dispose your transaction."); System.Diagnostics.Debug.Assert(disposing || canceled || committed, "Disposing DesignerTransaction that has not been comitted or canceled; forcing Cancel" ); Cancel(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EntityException.cs
- ThumbAutomationPeer.cs
- ObjectStateManager.cs
- AppDomainUnloadedException.cs
- ModelItemDictionary.cs
- DataGridTable.cs
- EDesignUtil.cs
- BufferedStream2.cs
- LookupNode.cs
- SimpleHandlerFactory.cs
- ValueTable.cs
- XamlGridLengthSerializer.cs
- _ChunkParse.cs
- SchemaCreator.cs
- WebServiceTypeData.cs
- CodeAttributeArgumentCollection.cs
- BitFlagsGenerator.cs
- BaseCollection.cs
- PerformanceCounterCategory.cs
- CommandLibraryHelper.cs
- IWorkflowDebuggerService.cs
- Win32Exception.cs
- Exceptions.cs
- FormClosingEvent.cs
- DynamicRendererThreadManager.cs
- Page.cs
- TextEffectResolver.cs
- MemoryRecordBuffer.cs
- columnmapfactory.cs
- ADConnectionHelper.cs
- XamlRtfConverter.cs
- SQLCharsStorage.cs
- Delay.cs
- UseAttributeSetsAction.cs
- DetailsViewRowCollection.cs
- ItemMap.cs
- CachingParameterInspector.cs
- StylusShape.cs
- login.cs
- FilteredAttributeCollection.cs
- PeerApplication.cs
- FileIOPermission.cs
- DataGridPageChangedEventArgs.cs
- OperationCanceledException.cs
- AsyncCompletedEventArgs.cs
- StackOverflowException.cs
- ReliableRequestSessionChannel.cs
- CharacterHit.cs
- StrongNameIdentityPermission.cs
- FlowSwitchLink.cs
- RepeaterItemCollection.cs
- SoapInteropTypes.cs
- PackWebResponse.cs
- VolatileResourceManager.cs
- HandleTable.cs
- TrackingDataItem.cs
- SqlBuffer.cs
- AxImporter.cs
- XmlNode.cs
- MobileListItem.cs
- ServiceRoute.cs
- MetadataException.cs
- SystemResources.cs
- CharKeyFrameCollection.cs
- RubberbandSelector.cs
- EntityDesignerBuildProvider.cs
- TypeSystemProvider.cs
- DoubleCollectionValueSerializer.cs
- ToolStripComboBox.cs
- QueryTaskGroupState.cs
- XpsManager.cs
- CompilationUtil.cs
- OleDbConnection.cs
- DragEventArgs.cs
- SpAudioStreamWrapper.cs
- SafeProcessHandle.cs
- TargetFrameworkAttribute.cs
- ValidatingPropertiesEventArgs.cs
- SvcMapFile.cs
- ObjectStateFormatter.cs
- ListBase.cs
- OneWayBindingElementImporter.cs
- XmlReaderDelegator.cs
- ModelTreeEnumerator.cs
- DataSourceCacheDurationConverter.cs
- SkipStoryboardToFill.cs
- PassportAuthentication.cs
- ToolStrip.cs
- SecurityCriticalDataForSet.cs
- FunctionDescription.cs
- RequestCachingSection.cs
- SqlDataSourceConfigureFilterForm.cs
- SqlClientFactory.cs
- ZipPackage.cs
- METAHEADER.cs
- SystemIPInterfaceProperties.cs
- UnsafeNativeMethodsTablet.cs
- GenericAuthenticationEventArgs.cs
- DoubleAnimationUsingPath.cs
- ColumnReorderedEventArgs.cs