Code:
/ FX-1434 / FX-1434 / 1.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
- DerivedKeyCachingSecurityTokenSerializer.cs
- FileVersionInfo.cs
- DodSequenceMerge.cs
- XmlReaderSettings.cs
- SafeSystemMetrics.cs
- VisualTreeUtils.cs
- TimeSpan.cs
- SrgsRulesCollection.cs
- ImmutableObjectAttribute.cs
- StylusOverProperty.cs
- GZipStream.cs
- SpellerError.cs
- ReferenceAssemblyAttribute.cs
- WindowsListViewSubItem.cs
- XmlEntityReference.cs
- PointKeyFrameCollection.cs
- Int64Animation.cs
- PrintPreviewGraphics.cs
- PreProcessInputEventArgs.cs
- StateWorkerRequest.cs
- _ConnectOverlappedAsyncResult.cs
- ColumnMapTranslator.cs
- RegisteredExpandoAttribute.cs
- PrintingPermission.cs
- embossbitmapeffect.cs
- DetailsViewCommandEventArgs.cs
- MergeFilterQuery.cs
- DataPagerCommandEventArgs.cs
- Assembly.cs
- CodeAttributeDeclarationCollection.cs
- UnaryExpression.cs
- ToolStripArrowRenderEventArgs.cs
- GrammarBuilderBase.cs
- RelationshipNavigation.cs
- SchemaImporter.cs
- SimpleModelProvider.cs
- DataGridViewTopLeftHeaderCell.cs
- OpCellTreeNode.cs
- WindowsFormsLinkLabel.cs
- TextBox.cs
- DocumentApplicationState.cs
- PtsHost.cs
- VirtualizingPanel.cs
- MgmtConfigurationRecord.cs
- CustomWebEventKey.cs
- TextStore.cs
- DocumentSequenceHighlightLayer.cs
- DetailsViewRowCollection.cs
- SQLBytes.cs
- Encoding.cs
- ConfigurationException.cs
- PageAsyncTaskManager.cs
- XsltArgumentList.cs
- ColorInterpolationModeValidation.cs
- XmlElementCollection.cs
- SqlSupersetValidator.cs
- ToolStripContainer.cs
- BroadcastEventHelper.cs
- TypeLoadException.cs
- DictionarySectionHandler.cs
- Point3DAnimation.cs
- XamlStream.cs
- HwndTarget.cs
- FixedStringLookup.cs
- DoubleStorage.cs
- BaseDataList.cs
- HttpHandlerActionCollection.cs
- SubstitutionResponseElement.cs
- AssemblyInfo.cs
- FontFamilyConverter.cs
- GeneralTransform2DTo3DTo2D.cs
- SynchronizedChannelCollection.cs
- MetadataSource.cs
- HttpPostedFile.cs
- RootNamespaceAttribute.cs
- BrowserDefinition.cs
- DelegatedStream.cs
- FlowDocumentScrollViewer.cs
- CollectionConverter.cs
- CompilerGeneratedAttribute.cs
- SRef.cs
- BitmapEffectDrawing.cs
- WinFormsSpinner.cs
- StopRoutingHandler.cs
- MediaPlayerState.cs
- SqlNodeAnnotation.cs
- Color.cs
- DesignerOptionService.cs
- HttpServerVarsCollection.cs
- ParallelDesigner.xaml.cs
- ScrollItemProviderWrapper.cs
- Bookmark.cs
- AssemblyBuilderData.cs
- RegexCompiler.cs
- OleStrCAMarshaler.cs
- SqlDataSourceFilteringEventArgs.cs
- MtomMessageEncoder.cs
- IUnknownConstantAttribute.cs
- DragCompletedEventArgs.cs
- dbdatarecord.cs