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
- MergePropertyDescriptor.cs
- XmlSchemaGroup.cs
- ClientCultureInfo.cs
- ListViewInsertionMark.cs
- DisplayInformation.cs
- RenderingEventArgs.cs
- ToolBarOverflowPanel.cs
- SqlDeflator.cs
- ArgumentDesigner.xaml.cs
- OleDbCommand.cs
- WebPartCatalogAddVerb.cs
- NamedPipeConnectionPool.cs
- TextSegment.cs
- OracleDateTime.cs
- bidPrivateBase.cs
- SQLByteStorage.cs
- sqlcontext.cs
- PriorityQueue.cs
- BaseParser.cs
- ReferenceService.cs
- QueryStringParameter.cs
- DataGridViewRowPrePaintEventArgs.cs
- SafeCertificateContext.cs
- DSASignatureFormatter.cs
- DesignerEditorPartChrome.cs
- FamilyMapCollection.cs
- StyleHelper.cs
- NamedElement.cs
- Restrictions.cs
- BinHexDecoder.cs
- IDispatchConstantAttribute.cs
- SystemNetworkInterface.cs
- LinkConverter.cs
- CacheHelper.cs
- NameNode.cs
- TTSEngineTypes.cs
- ContractMapping.cs
- ContainerFilterService.cs
- CodeDOMUtility.cs
- AffineTransform3D.cs
- DrawingState.cs
- RefExpr.cs
- ToolStripItemTextRenderEventArgs.cs
- PDBReader.cs
- AnimationTimeline.cs
- TraceSwitch.cs
- ScopelessEnumAttribute.cs
- ExeContext.cs
- EditorPartCollection.cs
- SharedPersonalizationStateInfo.cs
- RolePrincipal.cs
- ReplyChannelBinder.cs
- UnsafePeerToPeerMethods.cs
- OleDbWrapper.cs
- SmiContextFactory.cs
- MonthCalendarDesigner.cs
- assemblycache.cs
- SafeMemoryMappedFileHandle.cs
- FrameworkElementAutomationPeer.cs
- XpsColorContext.cs
- AutomationPatternInfo.cs
- DeploymentExceptionMapper.cs
- _HeaderInfo.cs
- TerminatorSinks.cs
- ISAPIRuntime.cs
- ItemType.cs
- MobileUITypeEditor.cs
- Knowncolors.cs
- WMICapabilities.cs
- CapabilitiesPattern.cs
- ReadOnlyDataSourceView.cs
- ObjectNotFoundException.cs
- SoapWriter.cs
- RegexCapture.cs
- SerializableAttribute.cs
- MouseDevice.cs
- DownloadProgressEventArgs.cs
- TemplatedWizardStep.cs
- WebPartEditorApplyVerb.cs
- NativeActivityFaultContext.cs
- StreamGeometry.cs
- HMACSHA384.cs
- ApplicationTrust.cs
- WebZone.cs
- StylusTip.cs
- TextBox.cs
- HTTPNotFoundHandler.cs
- DataServiceQueryOfT.cs
- Overlapped.cs
- PackageRelationshipCollection.cs
- EnumUnknown.cs
- XmlNodeChangedEventArgs.cs
- OleDbParameterCollection.cs
- RuntimeEnvironment.cs
- DesignerTransaction.cs
- RegistryKey.cs
- PropertyPath.cs
- GPStream.cs
- CalendarButtonAutomationPeer.cs
- RefreshInfo.cs