Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / CompMod / System / ComponentModel / Design / DesignerTransaction.cs / 1 / 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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DeobfuscatingStream.cs
- ThreadExceptionEvent.cs
- DataRecordInternal.cs
- ToolStripItemRenderEventArgs.cs
- DataControlPagerLinkButton.cs
- ExceptionUtil.cs
- BaseValidator.cs
- DependencyPropertyKind.cs
- CustomAttribute.cs
- SendActivity.cs
- ParagraphResult.cs
- ClientSettingsProvider.cs
- ByteStream.cs
- EventBookmark.cs
- StandardBindingElementCollection.cs
- TypeHelpers.cs
- SerializeAbsoluteContext.cs
- MsmqProcessProtocolHandler.cs
- ToolBar.cs
- AbsoluteQuery.cs
- XmlSchemaAnnotated.cs
- XmlDictionaryWriter.cs
- ExtendedProtectionPolicy.cs
- StatusBarItem.cs
- WebUtil.cs
- OuterGlowBitmapEffect.cs
- sitestring.cs
- SimplePropertyEntry.cs
- OpenTypeMethods.cs
- EntityProviderServices.cs
- StatusStrip.cs
- OptimisticConcurrencyException.cs
- ApplicationProxyInternal.cs
- LogLogRecordEnumerator.cs
- NoResizeHandleGlyph.cs
- NullableConverter.cs
- DecoderReplacementFallback.cs
- SqlConnectionFactory.cs
- TextFormatterContext.cs
- AgileSafeNativeMemoryHandle.cs
- GlobalDataBindingHandler.cs
- unsafenativemethodstextservices.cs
- CodeMethodInvokeExpression.cs
- MediaTimeline.cs
- ObjectDataSourceDisposingEventArgs.cs
- FunctionDescription.cs
- SystemIcons.cs
- DescendantQuery.cs
- BaseTemplateBuildProvider.cs
- SiteOfOriginContainer.cs
- sapiproxy.cs
- FormatVersion.cs
- QilExpression.cs
- SocketManager.cs
- NonVisualControlAttribute.cs
- SqlComparer.cs
- OraclePermission.cs
- TiffBitmapDecoder.cs
- StickyNote.cs
- MULTI_QI.cs
- WindowsFormsLinkLabel.cs
- WebHttpElement.cs
- CompilationRelaxations.cs
- RectKeyFrameCollection.cs
- AttributeCollection.cs
- ColumnMapTranslator.cs
- DataSourceXmlAttributeAttribute.cs
- PolyBezierSegment.cs
- LinkedResource.cs
- DefaultPrintController.cs
- Timer.cs
- CodePrimitiveExpression.cs
- AdPostCacheSubstitution.cs
- ExtensionSimplifierMarkupObject.cs
- XmlExtensionFunction.cs
- FlagsAttribute.cs
- ToolStripPanelRow.cs
- GridView.cs
- RtType.cs
- InternalEnumValidator.cs
- DefaultTraceListener.cs
- OneOfElement.cs
- QueryFunctions.cs
- assertwrapper.cs
- SubMenuStyle.cs
- SelectionPatternIdentifiers.cs
- LocatorGroup.cs
- SmtpNtlmAuthenticationModule.cs
- BlockCollection.cs
- ClientRuntimeConfig.cs
- Roles.cs
- KeyGestureConverter.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- StretchValidation.cs
- WebPartVerb.cs
- AppSettingsExpressionEditor.cs
- ApplicationBuildProvider.cs
- Token.cs
- VariableBinder.cs
- DependencyObjectPropertyDescriptor.cs