Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SamlSerializer.cs
- DbSourceParameterCollection.cs
- ArgumentValue.cs
- SQLByte.cs
- NotSupportedException.cs
- ConfigXmlCDataSection.cs
- SymbolEqualComparer.cs
- basecomparevalidator.cs
- InvalidDataContractException.cs
- StringResourceManager.cs
- SqlError.cs
- CngKeyCreationParameters.cs
- IdentityNotMappedException.cs
- ColumnResult.cs
- HeaderUtility.cs
- Calendar.cs
- ProfileService.cs
- CodeAttributeArgumentCollection.cs
- TextRangeEdit.cs
- DynamicControlParameter.cs
- RawKeyboardInputReport.cs
- DataStreamFromComStream.cs
- SmiEventStream.cs
- OutKeywords.cs
- HtmlButton.cs
- TextEndOfLine.cs
- SiteMapProvider.cs
- RadialGradientBrush.cs
- DataGridViewCellLinkedList.cs
- QilSortKey.cs
- XmlCodeExporter.cs
- WorkflowIdleElement.cs
- FeatureSupport.cs
- BindingGroup.cs
- CustomLineCap.cs
- HealthMonitoringSectionHelper.cs
- KnownBoxes.cs
- PhoneCallDesigner.cs
- RolePrincipal.cs
- NameValueCollection.cs
- CodeValidator.cs
- RemotingConfigParser.cs
- FixedSOMTableRow.cs
- EventProviderWriter.cs
- ColorMap.cs
- MenuItemStyleCollectionEditor.cs
- DbDataSourceEnumerator.cs
- TableLayout.cs
- ScriptReferenceEventArgs.cs
- CustomExpressionEventArgs.cs
- WebPartCatalogCloseVerb.cs
- MappingSource.cs
- HttpClientCertificate.cs
- ObjectToIdCache.cs
- ButtonFieldBase.cs
- COAUTHIDENTITY.cs
- ProxyManager.cs
- StylusDownEventArgs.cs
- SizeFConverter.cs
- EntityDesignPluralizationHandler.cs
- ExpressionEditorAttribute.cs
- OperationResponse.cs
- EmptyControlCollection.cs
- WebPartConnectionsConnectVerb.cs
- PopupRootAutomationPeer.cs
- LoginName.cs
- PointHitTestResult.cs
- SendDesigner.xaml.cs
- NotFiniteNumberException.cs
- securestring.cs
- ValueUnavailableException.cs
- ProbeDuplex11AsyncResult.cs
- CheckBox.cs
- InternalUserCancelledException.cs
- DataGridClipboardCellContent.cs
- TableAdapterManagerHelper.cs
- MessageEventSubscriptionService.cs
- ClientSession.cs
- PersistenceMetadataNamespace.cs
- CompensatableTransactionScopeActivity.cs
- CollectionChangeEventArgs.cs
- TextParagraphProperties.cs
- HtmlShimManager.cs
- ResourcesBuildProvider.cs
- ECDiffieHellman.cs
- _ProxyRegBlob.cs
- ObjectNotFoundException.cs
- AuthenticationModulesSection.cs
- XmlReaderSettings.cs
- DictationGrammar.cs
- ReflectionPermission.cs
- TagMapCollection.cs
- PublishLicense.cs
- EventSetter.cs
- TimeSpanSecondsConverter.cs
- BaseParaClient.cs
- FrameworkElement.cs
- TextElementEnumerator.cs
- PlainXmlSerializer.cs
- ToolboxItemAttribute.cs