Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CompMod / System / ComponentModel / Design / DesignerTransaction.cs / 1305376 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- IDispatchConstantAttribute.cs
- Perspective.cs
- PageTheme.cs
- COAUTHIDENTITY.cs
- MeasurementDCInfo.cs
- SortQuery.cs
- ExecutedRoutedEventArgs.cs
- FormsAuthenticationEventArgs.cs
- ApplicationSettingsBase.cs
- XmlMemberMapping.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- Matrix3D.cs
- ContentIterators.cs
- Exception.cs
- InteropDesigner.xaml.cs
- ResolveNameEventArgs.cs
- CellCreator.cs
- DataViewSettingCollection.cs
- FindCompletedEventArgs.cs
- ArrayListCollectionBase.cs
- SessionStateItemCollection.cs
- WorkflowInlining.cs
- TdsParserHelperClasses.cs
- ReferencedCollectionType.cs
- CreateUserErrorEventArgs.cs
- ConfigXmlComment.cs
- TextBlock.cs
- BooleanAnimationUsingKeyFrames.cs
- MultipartIdentifier.cs
- LocalFileSettingsProvider.cs
- Array.cs
- DesignColumn.cs
- PartEditor.cs
- XmlMembersMapping.cs
- DecimalStorage.cs
- Accessible.cs
- FormViewUpdateEventArgs.cs
- CompiledQuery.cs
- XmlDocument.cs
- DefinitionUpdate.cs
- Compensation.cs
- SchemaCollectionPreprocessor.cs
- ExpressionBuilder.cs
- TabPanel.cs
- IdentityValidationException.cs
- StrokeCollection2.cs
- ConfigXmlReader.cs
- BitmapEffect.cs
- ToolStripDropDownClosingEventArgs.cs
- EqualityComparer.cs
- BStrWrapper.cs
- AppDomainUnloadedException.cs
- CultureInfoConverter.cs
- nulltextcontainer.cs
- TableStyle.cs
- MetadataSerializer.cs
- ButtonFlatAdapter.cs
- ErrorEventArgs.cs
- PageThemeParser.cs
- TypedTableBase.cs
- PEFileEvidenceFactory.cs
- XmlNodeChangedEventManager.cs
- CombinedHttpChannel.cs
- BStrWrapper.cs
- HandleCollector.cs
- ListViewGroup.cs
- CommandDevice.cs
- ImmutableCollection.cs
- BrushConverter.cs
- DataMisalignedException.cs
- SByteStorage.cs
- TableProviderWrapper.cs
- BindingExpressionUncommonField.cs
- DataViewListener.cs
- ResourceManager.cs
- CacheAxisQuery.cs
- QuaternionAnimation.cs
- MarkupCompilePass1.cs
- EnumerableRowCollection.cs
- XPathCompileException.cs
- PeerIPHelper.cs
- SecurityChannelFaultConverter.cs
- ProtocolsConfigurationEntry.cs
- BinaryUtilClasses.cs
- AccessibleObject.cs
- ObjectTag.cs
- DataObjectPastingEventArgs.cs
- COM2ExtendedUITypeEditor.cs
- ConstructorNeedsTagAttribute.cs
- PipelineDeploymentState.cs
- PathFigureCollection.cs
- CheckedPointers.cs
- QuotedStringFormatReader.cs
- TreePrinter.cs
- InputQueue.cs
- TerminatorSinks.cs
- StreamHelper.cs
- SoapFormatExtensions.cs
- ItemCheckEvent.cs
- EntityExpressionVisitor.cs