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
- MetadataSource.cs
- ItemChangedEventArgs.cs
- HwndHost.cs
- MailMessageEventArgs.cs
- UnsafeNativeMethods.cs
- SHA256.cs
- SafeProcessHandle.cs
- ConfigXmlWhitespace.cs
- PropVariant.cs
- IIS7UserPrincipal.cs
- BaseEntityWrapper.cs
- ToolboxComponentsCreatedEventArgs.cs
- WinFormsSecurity.cs
- EdmItemCollection.cs
- BrowserCapabilitiesCompiler.cs
- WebPartCollection.cs
- InputMethodStateChangeEventArgs.cs
- filewebrequest.cs
- OracleCommand.cs
- WebPartTransformerAttribute.cs
- DefaultWorkflowLoaderService.cs
- DataGridViewLayoutData.cs
- RequestSecurityTokenSerializer.cs
- CompilerWrapper.cs
- UnsafeNativeMethods.cs
- SmiMetaDataProperty.cs
- ObjectStateEntryDbDataRecord.cs
- CustomAttributeSerializer.cs
- HighlightComponent.cs
- ErrorHandler.cs
- HtmlTableRowCollection.cs
- QuaternionIndependentAnimationStorage.cs
- SingleKeyFrameCollection.cs
- PathSegmentCollection.cs
- NavigationProgressEventArgs.cs
- ControlCollection.cs
- DropDownList.cs
- SqlDataReaderSmi.cs
- LineGeometry.cs
- AsyncOperation.cs
- LinearGradientBrush.cs
- HttpListenerContext.cs
- TextEndOfParagraph.cs
- SqlExpressionNullability.cs
- DataServiceEntityAttribute.cs
- CompiledELinqQueryState.cs
- CommonDialog.cs
- SymbolPair.cs
- ApplicationServiceHelper.cs
- FrameworkElementFactoryMarkupObject.cs
- QueuePathDialog.cs
- ConstantExpression.cs
- SchemaName.cs
- WebPartDisplayModeCancelEventArgs.cs
- InvokeWebServiceDesigner.cs
- StateDesigner.LayoutSelectionGlyph.cs
- _ScatterGatherBuffers.cs
- SecurityContextTokenValidationException.cs
- PreProcessInputEventArgs.cs
- Line.cs
- EntityReference.cs
- Speller.cs
- ManagementInstaller.cs
- ServerType.cs
- ConfigurationStrings.cs
- SecurityUtils.cs
- ScrollItemProviderWrapper.cs
- TextMetrics.cs
- DataGridViewHeaderCell.cs
- HostAdapter.cs
- ListBindingHelper.cs
- XmlComplianceUtil.cs
- Rule.cs
- BoundPropertyEntry.cs
- PropertyEmitter.cs
- PrincipalPermission.cs
- XslUrlEditor.cs
- SelectionHighlightInfo.cs
- SettingsPropertyValueCollection.cs
- PermissionRequestEvidence.cs
- RegexRunner.cs
- WebPartPersonalization.cs
- FileSecurity.cs
- DesignerCapabilities.cs
- WaitHandle.cs
- KeyedCollection.cs
- SignatureToken.cs
- Sql8ConformanceChecker.cs
- DataGridViewLayoutData.cs
- StorageComplexTypeMapping.cs
- QilLiteral.cs
- RegexNode.cs
- AutomationPattern.cs
- TemplateBuilder.cs
- XNodeValidator.cs
- rsa.cs
- TraceLevelStore.cs
- Identity.cs
- ValuePattern.cs
- FileUpload.cs