Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CompMod / System / ComponentModel / Design / DesignerTransaction.cs / 1305376 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FastEncoderStatics.cs
- CharKeyFrameCollection.cs
- InvalidBodyAccessException.cs
- AttachmentService.cs
- OleServicesContext.cs
- dataobject.cs
- XPathNavigatorReader.cs
- BitmapMetadataEnumerator.cs
- hresults.cs
- DataGridViewCellPaintingEventArgs.cs
- RangeValidator.cs
- CorrelationRequestContext.cs
- AspCompat.cs
- SHA1Managed.cs
- AspNetSynchronizationContext.cs
- SqlSelectStatement.cs
- XmlSchemaGroupRef.cs
- CollectionChangedEventManager.cs
- SHA256.cs
- XPathAxisIterator.cs
- BaseTemplateBuildProvider.cs
- BitmapSourceSafeMILHandle.cs
- X509Certificate2Collection.cs
- WebPartRestoreVerb.cs
- AllMembershipCondition.cs
- TypeElementCollection.cs
- ReadOnlyCollection.cs
- ZoomPercentageConverter.cs
- AccessKeyManager.cs
- MissingSatelliteAssemblyException.cs
- QilInvokeLateBound.cs
- DataPagerCommandEventArgs.cs
- TimeSpanStorage.cs
- ReliabilityContractAttribute.cs
- PTUtility.cs
- WsdlExporter.cs
- AdapterDictionary.cs
- PriorityRange.cs
- InternalPolicyElement.cs
- XmlTextReader.cs
- IndexedEnumerable.cs
- MouseButton.cs
- Context.cs
- SQLMembershipProvider.cs
- ReferentialConstraint.cs
- HttpModulesSection.cs
- ListInitExpression.cs
- ProcessManager.cs
- SmtpMail.cs
- PlainXmlWriter.cs
- RecoverInstanceLocksCommand.cs
- ValidationSummaryDesigner.cs
- ArraySet.cs
- OleCmdHelper.cs
- RandomNumberGenerator.cs
- RealProxy.cs
- VideoDrawing.cs
- EventListener.cs
- UnsafeNativeMethods.cs
- XmlDownloadManager.cs
- HttpApplicationStateBase.cs
- XmlIncludeAttribute.cs
- Container.cs
- SamlAssertionDirectKeyIdentifierClause.cs
- HtmlInputButton.cs
- PeerChannelListener.cs
- TreeViewHitTestInfo.cs
- DataBindingCollection.cs
- DataGridItemEventArgs.cs
- TrackBar.cs
- MsmqMessage.cs
- DataTableTypeConverter.cs
- MetadataFile.cs
- CommandExpr.cs
- NativeObjectSecurity.cs
- FacetValues.cs
- TagMapInfo.cs
- Model3DGroup.cs
- AddIn.cs
- DoubleAnimation.cs
- _NativeSSPI.cs
- ListBoxItemAutomationPeer.cs
- ImmComposition.cs
- TableLayout.cs
- RuleProcessor.cs
- MemberInfoSerializationHolder.cs
- HttpRuntimeSection.cs
- ActiveXHost.cs
- Margins.cs
- LongTypeConverter.cs
- WmpBitmapEncoder.cs
- securitycriticaldata.cs
- DiscoveryClientChannelBase.cs
- MemberAccessException.cs
- NegotiateStream.cs
- ICspAsymmetricAlgorithm.cs
- DataColumnChangeEvent.cs
- XPathParser.cs
- KeyMatchBuilder.cs
- DynamicMetaObject.cs