Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- ServiceObjectContainer.cs
- Rect.cs
- DetailsView.cs
- InputBindingCollection.cs
- ObjectHandle.cs
- WebFormDesignerActionService.cs
- ScriptHandlerFactory.cs
- ConnectionConsumerAttribute.cs
- EncoderReplacementFallback.cs
- QueryContext.cs
- ColumnWidthChangedEvent.cs
- DbConnectionPoolCounters.cs
- SpAudioStreamWrapper.cs
- StaticContext.cs
- ReplacementText.cs
- FormatConvertedBitmap.cs
- TypeUsageBuilder.cs
- GuidelineSet.cs
- PriorityBinding.cs
- HebrewCalendar.cs
- IntSecurity.cs
- EdmScalarPropertyAttribute.cs
- Utils.cs
- XpsFontSerializationService.cs
- NativeMethods.cs
- TableAutomationPeer.cs
- ParserHooks.cs
- CheckBoxRenderer.cs
- ListViewItemEventArgs.cs
- TextServicesLoader.cs
- RegexCode.cs
- LinqDataSourceView.cs
- ExpressionsCollectionConverter.cs
- StreamWriter.cs
- SimpleLine.cs
- TheQuery.cs
- TimerEventSubscription.cs
- CustomValidator.cs
- StringCollectionEditor.cs
- TailCallAnalyzer.cs
- DataAdapter.cs
- TemplateModeChangedEventArgs.cs
- Math.cs
- BinaryMessageFormatter.cs
- WebSysDisplayNameAttribute.cs
- ActivityXamlServices.cs
- _LoggingObject.cs
- DefaultTextStore.cs
- OutputCache.cs
- remotingproxy.cs
- ProjectionCamera.cs
- XmlAttributeCollection.cs
- localization.cs
- CommandSet.cs
- CultureTableRecord.cs
- Table.cs
- OutputCacheSettingsSection.cs
- ClientProxyGenerator.cs
- Range.cs
- ImageMetadata.cs
- pingexception.cs
- FlowNode.cs
- WeakHashtable.cs
- DetailsViewRowCollection.cs
- ActivityWithResultConverter.cs
- MediaPlayerState.cs
- DetailsViewRow.cs
- ThreadStateException.cs
- ObfuscationAttribute.cs
- SaveFileDialog.cs
- ToolStripDesignerAvailabilityAttribute.cs
- CultureInfoConverter.cs
- SpeakCompletedEventArgs.cs
- XmlSchemaDatatype.cs
- cookie.cs
- HttpDebugHandler.cs
- SettingsPropertyValueCollection.cs
- FormViewModeEventArgs.cs
- PersonalizationState.cs
- CodeDirectoryCompiler.cs
- AttachedPropertyMethodSelector.cs
- TableLayoutPanelCellPosition.cs
- ReferencedType.cs
- MasterPageBuildProvider.cs
- CngUIPolicy.cs
- ReadOnlyCollectionBuilder.cs
- HtmlInputImage.cs
- CompositeCollectionView.cs
- FindCriteriaElement.cs
- PageParser.cs
- MinimizableAttributeTypeConverter.cs
- infer.cs
- XmlSignatureProperties.cs
- DateTimeConstantAttribute.cs
- ClaimTypeElement.cs
- HttpListenerException.cs
- TextTreeTextBlock.cs
- XamlWriter.cs
- DrawingBrush.cs
- HttpCookieCollection.cs