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
- DataGridViewButtonCell.cs
- HebrewNumber.cs
- HtmlShim.cs
- SymmetricKey.cs
- SizeConverter.cs
- CellLabel.cs
- ControlBuilderAttribute.cs
- Material.cs
- MdiWindowListStrip.cs
- Stacktrace.cs
- StringReader.cs
- NullExtension.cs
- Operator.cs
- CodeGroup.cs
- ReflectPropertyDescriptor.cs
- _DisconnectOverlappedAsyncResult.cs
- HwndMouseInputProvider.cs
- ValidationHelper.cs
- UnicastIPAddressInformationCollection.cs
- BitmapSource.cs
- RootAction.cs
- CodeCastExpression.cs
- ParentQuery.cs
- SqlCacheDependencySection.cs
- ExpressionStringBuilder.cs
- DirectoryNotFoundException.cs
- SqlVisitor.cs
- UrlEncodedParameterWriter.cs
- HitTestFilterBehavior.cs
- FormsAuthenticationModule.cs
- securitycriticaldata.cs
- XmlIgnoreAttribute.cs
- KnownTypesHelper.cs
- DefaultValueTypeConverter.cs
- DataGridViewColumnHeaderCell.cs
- StreamingContext.cs
- SecurityPermission.cs
- ListViewContainer.cs
- SecurityElement.cs
- MultiPageTextView.cs
- PerformanceCounterManager.cs
- RevocationPoint.cs
- BoundColumn.cs
- BufferModesCollection.cs
- ColumnHeaderConverter.cs
- WebScriptServiceHostFactory.cs
- SessionPageStateSection.cs
- ConfigurationValidatorAttribute.cs
- Context.cs
- MiniConstructorInfo.cs
- NGCUIElementCollectionSerializerAsync.cs
- dsa.cs
- TreeBuilderXamlTranslator.cs
- DrawingAttributesDefaultValueFactory.cs
- ObjectListComponentEditor.cs
- WhereaboutsReader.cs
- EntityConnection.cs
- PassportAuthentication.cs
- SmtpException.cs
- ResourcesChangeInfo.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- HttpChannelBindingToken.cs
- AdornerPresentationContext.cs
- LocatorGroup.cs
- figurelengthconverter.cs
- OdbcDataReader.cs
- JsonCollectionDataContract.cs
- GeneralEndpointIdentity.cs
- MulticastDelegate.cs
- EpmTargetPathSegment.cs
- SimpleTextLine.cs
- TraceListener.cs
- HtmlShim.cs
- Translator.cs
- EncoderReplacementFallback.cs
- DataGridViewAccessibleObject.cs
- DbSourceCommand.cs
- HyperLinkStyle.cs
- Identity.cs
- DeleteMemberBinder.cs
- AsyncCompletedEventArgs.cs
- MemoryRecordBuffer.cs
- ConfigXmlCDataSection.cs
- GroupLabel.cs
- ServerProtocol.cs
- Int64AnimationBase.cs
- VisualTarget.cs
- Button.cs
- EnterpriseServicesHelper.cs
- SchemaConstraints.cs
- DesignTimeXamlWriter.cs
- MultilineStringConverter.cs
- BulletChrome.cs
- OrderedDictionaryStateHelper.cs
- TripleDES.cs
- HealthMonitoringSectionHelper.cs
- WebDisplayNameAttribute.cs
- MeasureItemEvent.cs
- ReadOnlyCollectionBase.cs
- MediaEntryAttribute.cs