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
- ProxyManager.cs
- wpf-etw.cs
- FlagsAttribute.cs
- TempFiles.cs
- LambdaReference.cs
- XsltQilFactory.cs
- WebPart.cs
- DesignerVerbToolStripMenuItem.cs
- WebPartEditorApplyVerb.cs
- InvocationExpression.cs
- PropertyPushdownHelper.cs
- SqlUdtInfo.cs
- Rect3DValueSerializer.cs
- CompiledQuery.cs
- Pair.cs
- MachinePropertyVariants.cs
- ClaimTypes.cs
- WebPartZoneBase.cs
- SoapFault.cs
- ConnectionManagementElementCollection.cs
- CommandValueSerializer.cs
- NotFiniteNumberException.cs
- WriteStateInfoBase.cs
- DataObjectAttribute.cs
- ControlBuilder.cs
- QueryCursorEventArgs.cs
- MemberExpressionHelper.cs
- PolyQuadraticBezierSegment.cs
- XPathNodeHelper.cs
- ColumnTypeConverter.cs
- DataGridViewComboBoxColumn.cs
- RegexCompiler.cs
- COM2Enum.cs
- OpCopier.cs
- OperatingSystem.cs
- ReliableChannelListener.cs
- FileVersionInfo.cs
- ProxyManager.cs
- _UriTypeConverter.cs
- ToolStripDropDownClosingEventArgs.cs
- DBSchemaTable.cs
- X509CertificateValidator.cs
- ValidationPropertyAttribute.cs
- StoreContentChangedEventArgs.cs
- ResXBuildProvider.cs
- MarkupCompiler.cs
- EntityContainer.cs
- UInt64Converter.cs
- SplitterPanelDesigner.cs
- PrintDialog.cs
- SqlDataSourceConfigureFilterForm.cs
- DependencyPropertyConverter.cs
- DataGridParentRows.cs
- CodeParameterDeclarationExpression.cs
- ContentElementCollection.cs
- Pair.cs
- SqlErrorCollection.cs
- ResolveNameEventArgs.cs
- PbrsForward.cs
- DataGridViewRowConverter.cs
- IPGlobalProperties.cs
- InkPresenter.cs
- BrowserCapabilitiesFactory.cs
- ObjectCacheSettings.cs
- ColumnMapTranslator.cs
- __Filters.cs
- MulticastDelegate.cs
- DataGridHeaderBorder.cs
- SelectingProviderEventArgs.cs
- InfiniteIntConverter.cs
- SrgsSemanticInterpretationTag.cs
- MessageAction.cs
- ProfileModule.cs
- BuildProvider.cs
- Propagator.JoinPropagator.cs
- FormViewModeEventArgs.cs
- RectAnimationBase.cs
- SpStreamWrapper.cs
- BaseCodePageEncoding.cs
- ContentHostHelper.cs
- SerializationInfo.cs
- ExpressionPrinter.cs
- login.cs
- TaiwanLunisolarCalendar.cs
- DetailsViewInsertedEventArgs.cs
- DataGridViewTopRowAccessibleObject.cs
- TypedElement.cs
- PassportAuthentication.cs
- Variable.cs
- TemplatedAdorner.cs
- BaseValidator.cs
- XPathCompiler.cs
- NullableLongMinMaxAggregationOperator.cs
- DurableEnlistmentState.cs
- ChannelCredentials.cs
- GenerateTemporaryTargetAssembly.cs
- DataGridViewRowHeaderCell.cs
- Debugger.cs
- ArrayItemReference.cs
- SplitterCancelEvent.cs