Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / tx / System / Transactions / EnlistmentTraceIdentifier.cs / 1305376 / EnlistmentTraceIdentifier.cs
using System; namespace System.Transactions { ////// This identifier is used in tracing to distiguish transaction /// enlistments. This identifier is only unique within /// a given AppDomain. /// internal struct EnlistmentTraceIdentifier { public static readonly EnlistmentTraceIdentifier Empty = new EnlistmentTraceIdentifier(); public EnlistmentTraceIdentifier( Guid resourceManagerIdentifier, TransactionTraceIdentifier transactionTraceId, int enlistmentIdentifier ) { this.resourceManagerIdentifier = resourceManagerIdentifier; this.transactionTraceIdentifier = transactionTraceId; this.enlistmentIdentifier = enlistmentIdentifier; } private Guid resourceManagerIdentifier; ////// The Guid identifier of the resource manager that made the /// enlistment. If the enlistment is a Volatile enlistment, /// this value will be Guid.Empty. /// public Guid ResourceManagerIdentifier { get { return this.resourceManagerIdentifier; } } private TransactionTraceIdentifier transactionTraceIdentifier; ////// The TransactionTraceIdentifier for the transaction that is /// enlisted upon. /// public TransactionTraceIdentifier TransactionTraceId { get { return this.transactionTraceIdentifier; } } private int enlistmentIdentifier; ////// A value that distiguishes between multiple enlistments on the same /// transaction instance by the same resource manager. /// public int EnlistmentIdentifier { get { return this.enlistmentIdentifier; } } public override int GetHashCode() { return base.GetHashCode(); // Don't have anything better to do. } public override bool Equals ( object objectToCompare ) { if ( ! ( objectToCompare is EnlistmentTraceIdentifier ) ) { return false; } EnlistmentTraceIdentifier id = ( EnlistmentTraceIdentifier )objectToCompare; if ( (id.ResourceManagerIdentifier != this.ResourceManagerIdentifier ) || ( id.TransactionTraceId != this.TransactionTraceId ) || ( id.EnlistmentIdentifier != this.EnlistmentIdentifier ) ) { return false; } return true; } public static bool operator==( EnlistmentTraceIdentifier id1, EnlistmentTraceIdentifier id2 ) { return id1.Equals( id2 ); } // We need to equality operator and the compiler doesn't let us have an equality operator without an inequality operator, // so we added it and FXCop doesn't like the fact that we don't call it. [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] public static bool operator!=( EnlistmentTraceIdentifier id1, EnlistmentTraceIdentifier id2 ) { return !id1.Equals( id2 ); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; namespace System.Transactions { ////// This identifier is used in tracing to distiguish transaction /// enlistments. This identifier is only unique within /// a given AppDomain. /// internal struct EnlistmentTraceIdentifier { public static readonly EnlistmentTraceIdentifier Empty = new EnlistmentTraceIdentifier(); public EnlistmentTraceIdentifier( Guid resourceManagerIdentifier, TransactionTraceIdentifier transactionTraceId, int enlistmentIdentifier ) { this.resourceManagerIdentifier = resourceManagerIdentifier; this.transactionTraceIdentifier = transactionTraceId; this.enlistmentIdentifier = enlistmentIdentifier; } private Guid resourceManagerIdentifier; ////// The Guid identifier of the resource manager that made the /// enlistment. If the enlistment is a Volatile enlistment, /// this value will be Guid.Empty. /// public Guid ResourceManagerIdentifier { get { return this.resourceManagerIdentifier; } } private TransactionTraceIdentifier transactionTraceIdentifier; ////// The TransactionTraceIdentifier for the transaction that is /// enlisted upon. /// public TransactionTraceIdentifier TransactionTraceId { get { return this.transactionTraceIdentifier; } } private int enlistmentIdentifier; ////// A value that distiguishes between multiple enlistments on the same /// transaction instance by the same resource manager. /// public int EnlistmentIdentifier { get { return this.enlistmentIdentifier; } } public override int GetHashCode() { return base.GetHashCode(); // Don't have anything better to do. } public override bool Equals ( object objectToCompare ) { if ( ! ( objectToCompare is EnlistmentTraceIdentifier ) ) { return false; } EnlistmentTraceIdentifier id = ( EnlistmentTraceIdentifier )objectToCompare; if ( (id.ResourceManagerIdentifier != this.ResourceManagerIdentifier ) || ( id.TransactionTraceId != this.TransactionTraceId ) || ( id.EnlistmentIdentifier != this.EnlistmentIdentifier ) ) { return false; } return true; } public static bool operator==( EnlistmentTraceIdentifier id1, EnlistmentTraceIdentifier id2 ) { return id1.Equals( id2 ); } // We need to equality operator and the compiler doesn't let us have an equality operator without an inequality operator, // so we added it and FXCop doesn't like the fact that we don't call it. [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] public static bool operator!=( EnlistmentTraceIdentifier id1, EnlistmentTraceIdentifier id2 ) { return !id1.Equals( id2 ); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AssociationSetEnd.cs
- RtfToXamlReader.cs
- XmlCharacterData.cs
- TextEffectCollection.cs
- ResourcesGenerator.cs
- XPathNodePointer.cs
- MD5Cng.cs
- SiteOfOriginPart.cs
- SelectionService.cs
- MapPathBasedVirtualPathProvider.cs
- IndexedEnumerable.cs
- NativeMethodsOther.cs
- ToolStripLabel.cs
- LinkTarget.cs
- StandardOleMarshalObject.cs
- StreamReader.cs
- Speller.cs
- Variant.cs
- RegexRunnerFactory.cs
- FormsIdentity.cs
- TextTreeDeleteContentUndoUnit.cs
- TypedTableHandler.cs
- SafeHandles.cs
- ControllableStoryboardAction.cs
- DbUpdateCommandTree.cs
- GradientStop.cs
- WindowsPen.cs
- PropertyChangedEventManager.cs
- FaultPropagationQuery.cs
- SettingsContext.cs
- PathTooLongException.cs
- InfiniteTimeSpanConverter.cs
- GridViewCommandEventArgs.cs
- httpapplicationstate.cs
- COM2PropertyBuilderUITypeEditor.cs
- PrinterUnitConvert.cs
- SubMenuStyle.cs
- XmlElementAttribute.cs
- SocketException.cs
- NamespaceInfo.cs
- PostBackOptions.cs
- EventListenerClientSide.cs
- PingOptions.cs
- DebugViewWriter.cs
- CssTextWriter.cs
- HttpResponseInternalBase.cs
- SafeMILHandle.cs
- InputReferenceExpression.cs
- DelegatingConfigHost.cs
- ImageCodecInfo.cs
- shaperfactoryquerycachekey.cs
- PersonalizationProvider.cs
- DashStyles.cs
- XmlSchemaAll.cs
- EntityDataSourceEntityTypeFilterItem.cs
- UrlMappingsSection.cs
- LoginDesigner.cs
- EventLogEntry.cs
- VirtualDirectoryMapping.cs
- ADMembershipProvider.cs
- WebPartTransformerCollection.cs
- ClientScriptManager.cs
- System.Data_BID.cs
- RuntimeConfig.cs
- ScriptControlDescriptor.cs
- ReadOnlyHierarchicalDataSource.cs
- OutOfMemoryException.cs
- IntSecurity.cs
- bidPrivateBase.cs
- CommandConverter.cs
- InputLanguageEventArgs.cs
- PkcsUtils.cs
- ClientScriptManager.cs
- NameTable.cs
- TagMapInfo.cs
- ErrorTableItemStyle.cs
- StateBag.cs
- ScriptResourceHandler.cs
- CompositeCollectionView.cs
- Brush.cs
- AppearanceEditorPart.cs
- ControlBuilderAttribute.cs
- MiniConstructorInfo.cs
- ExpressionBuilder.cs
- EntityCommandExecutionException.cs
- Trace.cs
- ComboBox.cs
- TraceListeners.cs
- ZipIOCentralDirectoryBlock.cs
- WmlImageAdapter.cs
- MetadataCacheItem.cs
- X509SecurityToken.cs
- Drawing.cs
- TabControl.cs
- WebControlsSection.cs
- ValidationService.cs
- TableLayoutSettings.cs
- RestHandler.cs
- ServiceDescriptionSerializer.cs
- GridView.cs