Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ //// 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
- XpsSerializationException.cs
- StylusShape.cs
- SingleAnimationBase.cs
- AttributeAction.cs
- SamlSecurityTokenAuthenticator.cs
- Brush.cs
- UnsafeNativeMethodsTablet.cs
- StorageMappingItemCollection.cs
- HeaderCollection.cs
- LowerCaseStringConverter.cs
- SpanIndex.cs
- PopOutPanel.cs
- Animatable.cs
- Calendar.cs
- Ref.cs
- PostBackOptions.cs
- BookmarkInfo.cs
- EventsTab.cs
- AsymmetricSignatureFormatter.cs
- EventRouteFactory.cs
- SqlTypesSchemaImporter.cs
- SafeReversePInvokeHandle.cs
- ObjectViewQueryResultData.cs
- IgnoreSectionHandler.cs
- CorrelationValidator.cs
- CodeTypeDeclarationCollection.cs
- RelationshipFixer.cs
- AddToCollection.cs
- ActivityDesignerHelper.cs
- XmlSerializerAssemblyAttribute.cs
- ForeignKeyFactory.cs
- updatecommandorderer.cs
- UnitySerializationHolder.cs
- ReceiveSecurityHeaderEntry.cs
- Vector3D.cs
- TTSEngineTypes.cs
- GenericPrincipal.cs
- EtwTrace.cs
- VisualCollection.cs
- NavigationProgressEventArgs.cs
- ObjectDataSourceFilteringEventArgs.cs
- RegexWorker.cs
- NotSupportedException.cs
- documentsequencetextpointer.cs
- XamlNamespaceHelper.cs
- InputBindingCollection.cs
- WhileDesigner.cs
- TextTreeFixupNode.cs
- HtmlToClrEventProxy.cs
- MessageLogger.cs
- ObjectQuery.cs
- CustomAttributeSerializer.cs
- BaseUriWithWildcard.cs
- coordinatorfactory.cs
- EntityUtil.cs
- IDReferencePropertyAttribute.cs
- NullableFloatAverageAggregationOperator.cs
- ActivationArguments.cs
- TargetParameterCountException.cs
- ElementUtil.cs
- AssemblyBuilderData.cs
- TdsParserSafeHandles.cs
- GeneralTransform3D.cs
- EntitySetRetriever.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- InstanceLockQueryResult.cs
- HttpClientProtocol.cs
- ExpressionPrinter.cs
- ResourceReferenceExpression.cs
- SerializationAttributes.cs
- Row.cs
- CriticalHandle.cs
- StackBuilderSink.cs
- Message.cs
- HtmlInputHidden.cs
- FontDriver.cs
- ToolBarButton.cs
- MeasurementDCInfo.cs
- FixedMaxHeap.cs
- WCFServiceClientProxyGenerator.cs
- StrokeCollection2.cs
- DocumentViewerAutomationPeer.cs
- BuildManager.cs
- TextEditorLists.cs
- EdmComplexPropertyAttribute.cs
- ClientTargetCollection.cs
- HtmlTextArea.cs
- _CookieModule.cs
- Console.cs
- SelectionProviderWrapper.cs
- TextTreePropertyUndoUnit.cs
- AdornerLayer.cs
- ContextCorrelationInitializer.cs
- SiteMapSection.cs
- InnerItemCollectionView.cs
- PageFunction.cs
- InheritanceAttribute.cs
- DataGridViewCellCollection.cs
- FindCriteria11.cs
- WebResourceAttribute.cs