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
- PropertyDescriptors.cs
- MemberMemberBinding.cs
- complextypematerializer.cs
- DllNotFoundException.cs
- SR.cs
- DynamicControl.cs
- SoapCommonClasses.cs
- StylusDevice.cs
- SqlError.cs
- ConfigurationLocation.cs
- AutomationPropertyInfo.cs
- SessionEndingEventArgs.cs
- RepeaterItemCollection.cs
- InstanceView.cs
- DbParameterCollectionHelper.cs
- Highlights.cs
- PriorityBindingExpression.cs
- Mutex.cs
- TriggerCollection.cs
- SafeBitVector32.cs
- ExtractCollection.cs
- QilCloneVisitor.cs
- XpsFontSubsetter.cs
- ScriptRegistrationManager.cs
- AxHostDesigner.cs
- CompilerGlobalScopeAttribute.cs
- ThumbAutomationPeer.cs
- SqlProcedureAttribute.cs
- PriorityRange.cs
- CachedTypeface.cs
- KeyedByTypeCollection.cs
- CatalogPart.cs
- RegisteredDisposeScript.cs
- ZipIOExtraFieldZip64Element.cs
- CornerRadiusConverter.cs
- ModelUIElement3D.cs
- ComUdtElementCollection.cs
- SqlCachedBuffer.cs
- CodeExporter.cs
- Span.cs
- DataFieldConverter.cs
- TextSelection.cs
- List.cs
- TagPrefixCollection.cs
- SettingsAttributes.cs
- ObjectFullSpanRewriter.cs
- COMException.cs
- CompareInfo.cs
- TemplateControlBuildProvider.cs
- Nodes.cs
- UpdateCompiler.cs
- GridViewPageEventArgs.cs
- CompiledXpathExpr.cs
- XamlFigureLengthSerializer.cs
- ISessionStateStore.cs
- DifferencingCollection.cs
- BinaryParser.cs
- TemplatePropertyEntry.cs
- MouseActionConverter.cs
- Subtree.cs
- LineServicesCallbacks.cs
- GacUtil.cs
- ToolStripArrowRenderEventArgs.cs
- ServerValidateEventArgs.cs
- ResourceReferenceKeyNotFoundException.cs
- BaseTemplateBuildProvider.cs
- Stack.cs
- ResourceKey.cs
- TransportSecurityProtocolFactory.cs
- SystemUnicastIPAddressInformation.cs
- TimeIntervalCollection.cs
- CacheDependency.cs
- XPathSelectionIterator.cs
- DataGridViewCellValueEventArgs.cs
- GroupBoxDesigner.cs
- TextServicesHost.cs
- Pens.cs
- fixedPageContentExtractor.cs
- SocketPermission.cs
- ParameterToken.cs
- CodeStatement.cs
- ConnectionManagementElement.cs
- RoleBoolean.cs
- Int32RectConverter.cs
- SecurityUtils.cs
- TimeSpanHelper.cs
- XmlWriterTraceListener.cs
- RegexGroupCollection.cs
- ServiceInfoCollection.cs
- ObjectItemCollection.cs
- MatrixAnimationUsingKeyFrames.cs
- MarginsConverter.cs
- ReferentialConstraint.cs
- SerializableAttribute.cs
- TemplateDefinition.cs
- ResXResourceReader.cs
- DatePickerAutomationPeer.cs
- wgx_exports.cs
- HwndSourceParameters.cs
- CompositionAdorner.cs