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
- ReadOnlyMetadataCollection.cs
- WebServiceTypeData.cs
- BlobPersonalizationState.cs
- ISCIIEncoding.cs
- EventlogProvider.cs
- DrawingDrawingContext.cs
- KnownBoxes.cs
- BigInt.cs
- DefaultEventAttribute.cs
- RequestCacheManager.cs
- AlignmentYValidation.cs
- ActivityTypeResolver.xaml.cs
- ObjectItemCachedAssemblyLoader.cs
- JulianCalendar.cs
- CheckPair.cs
- SelectionBorderGlyph.cs
- RedistVersionInfo.cs
- ListSortDescription.cs
- MediaSystem.cs
- MessageEncodingBindingElementImporter.cs
- FormsAuthentication.cs
- CatchBlock.cs
- HtmlElementEventArgs.cs
- DataGridViewCellParsingEventArgs.cs
- TextContainerChangedEventArgs.cs
- ResourcePart.cs
- ColorAnimationUsingKeyFrames.cs
- CompiledIdentityConstraint.cs
- BuilderInfo.cs
- XmlTypeAttribute.cs
- XamlPoint3DCollectionSerializer.cs
- FileChangesMonitor.cs
- NullExtension.cs
- SoapFault.cs
- ToolStripArrowRenderEventArgs.cs
- XPathParser.cs
- WebEventCodes.cs
- DataGridState.cs
- AbstractSvcMapFileLoader.cs
- DuplicateContext.cs
- Point.cs
- XmlSchemaComplexContentRestriction.cs
- SafeLocalAllocation.cs
- TabControlAutomationPeer.cs
- WebPageTraceListener.cs
- FaultContractAttribute.cs
- Pair.cs
- Menu.cs
- WinInetCache.cs
- RadioButtonStandardAdapter.cs
- PropertyRef.cs
- TextAction.cs
- SkewTransform.cs
- GenerateTemporaryTargetAssembly.cs
- Compiler.cs
- DataGridSortCommandEventArgs.cs
- ObjRef.cs
- SamlConditions.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- DesignerEditorPartChrome.cs
- NamespaceImport.cs
- UdpTransportBindingElement.cs
- XmlDomTextWriter.cs
- EntityCollection.cs
- InstancePersistenceCommand.cs
- TouchEventArgs.cs
- CorePropertiesFilter.cs
- StylusButtonCollection.cs
- NativeWindow.cs
- MDIWindowDialog.cs
- DataException.cs
- HtmlDocument.cs
- TableColumn.cs
- CharacterShapingProperties.cs
- ScrollData.cs
- XmlArrayItemAttribute.cs
- HttpHandlersInstallComponent.cs
- LocationUpdates.cs
- OledbConnectionStringbuilder.cs
- OpenTypeLayout.cs
- precedingquery.cs
- DataGridView.cs
- LocalizabilityAttribute.cs
- LinkUtilities.cs
- RelationshipEndMember.cs
- BitmapEffectInput.cs
- XmlSubtreeReader.cs
- GiveFeedbackEvent.cs
- OleDbReferenceCollection.cs
- BaseCollection.cs
- WebControlToolBoxItem.cs
- NetSectionGroup.cs
- CombinedGeometry.cs
- KeyPressEvent.cs
- ProfilePropertySettingsCollection.cs
- XmlSchemaImport.cs
- ISAPIWorkerRequest.cs
- XmlEncodedRawTextWriter.cs
- ForceCopyBuildProvider.cs
- ColumnResizeAdorner.cs