Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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(); } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ImmComposition.cs
- BasicKeyConstraint.cs
- NumberFormatter.cs
- Connection.cs
- SystemSounds.cs
- DesignerAutoFormatStyle.cs
- _ShellExpression.cs
- XpsFilter.cs
- HttpStaticObjectsCollectionBase.cs
- WriteableBitmap.cs
- ProofTokenCryptoHandle.cs
- X509Extension.cs
- BCryptSafeHandles.cs
- BufferedMessageWriter.cs
- DataControlButton.cs
- IEnumerable.cs
- TransformerConfigurationWizardBase.cs
- Brushes.cs
- RowType.cs
- PtsCache.cs
- Operators.cs
- SortableBindingList.cs
- OdbcException.cs
- SharedUtils.cs
- Deflater.cs
- Visual.cs
- SqlProcedureAttribute.cs
- DataGridViewColumnCollectionDialog.cs
- SqlDataSourceView.cs
- SettingsPropertyCollection.cs
- InvalidProgramException.cs
- StringConverter.cs
- DateTimeParse.cs
- DefaultAsyncDataDispatcher.cs
- ByteAnimationUsingKeyFrames.cs
- ObsoleteAttribute.cs
- XmlSerializer.cs
- DeleteMemberBinder.cs
- CharacterShapingProperties.cs
- RealizationContext.cs
- LayoutDump.cs
- StylusTip.cs
- FrameworkContentElement.cs
- Selection.cs
- ISAPIRuntime.cs
- XmlAtomicValue.cs
- TrailingSpaceComparer.cs
- CodeDelegateCreateExpression.cs
- PropertyGeneratedEventArgs.cs
- LocalizableAttribute.cs
- SymmetricAlgorithm.cs
- EffectiveValueEntry.cs
- PropertyPushdownHelper.cs
- EventsTab.cs
- Ref.cs
- AccessViolationException.cs
- QilList.cs
- ValidatorCompatibilityHelper.cs
- TypeCollectionDesigner.xaml.cs
- ValidationHelper.cs
- CompilerError.cs
- ComplexType.cs
- COM2TypeInfoProcessor.cs
- Mappings.cs
- MatrixAnimationUsingPath.cs
- StateItem.cs
- CommandHelpers.cs
- MailAddress.cs
- WebPartDescription.cs
- DataGridColumnCollection.cs
- FixUpCollection.cs
- PropertyPathConverter.cs
- ExternalDataExchangeService.cs
- ServerValidateEventArgs.cs
- WebHttpBindingElement.cs
- DisplayInformation.cs
- AsnEncodedData.cs
- ElementNotAvailableException.cs
- WindowVisualStateTracker.cs
- DocumentGridPage.cs
- DbDataSourceEnumerator.cs
- Triangle.cs
- Directory.cs
- SystemMulticastIPAddressInformation.cs
- QuaternionAnimationBase.cs
- DbSourceCommand.cs
- CollectionViewSource.cs
- DataRowView.cs
- RoutedEventValueSerializer.cs
- MenuItemCollectionEditorDialog.cs
- ContainerFilterService.cs
- _Win32.cs
- SecurityPolicySection.cs
- MethodAccessException.cs
- Int64Storage.cs
- CacheChildrenQuery.cs
- XmlSchemaSimpleContentExtension.cs
- SafeEventLogWriteHandle.cs
- validationstate.cs
- MobileControl.cs