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
- BamlStream.cs
- CookieProtection.cs
- CompilerErrorCollection.cs
- DebuggerAttributes.cs
- SafeSecurityHandles.cs
- XmlReaderSettings.cs
- TreeChangeInfo.cs
- DataTableReaderListener.cs
- HiddenField.cs
- FaultDesigner.cs
- ExpressionBindingCollection.cs
- SafeArrayTypeMismatchException.cs
- SimpleBitVector32.cs
- BamlRecordWriter.cs
- ModifierKeysConverter.cs
- PenThread.cs
- ADConnectionHelper.cs
- IsolatedStorageSecurityState.cs
- AuthenticationService.cs
- WmlLinkAdapter.cs
- SetIterators.cs
- Binding.cs
- RawKeyboardInputReport.cs
- ConditionBrowserDialog.cs
- Evidence.cs
- TcpConnectionPoolSettings.cs
- TypedReference.cs
- HtmlControlPersistable.cs
- ClientCredentialsSecurityTokenManager.cs
- ButtonBase.cs
- SchemaLookupTable.cs
- LocatorManager.cs
- OfTypeExpression.cs
- Light.cs
- DrawListViewColumnHeaderEventArgs.cs
- SingleKeyFrameCollection.cs
- RecognizedPhrase.cs
- SplitterEvent.cs
- HotCommands.cs
- RuleSet.cs
- AsyncPostBackErrorEventArgs.cs
- Stroke2.cs
- Equal.cs
- DataServiceProviderMethods.cs
- PreviewPrintController.cs
- OdbcCommandBuilder.cs
- ProfileSection.cs
- OleDbParameterCollection.cs
- TraceListeners.cs
- SqlConnectionStringBuilder.cs
- DocumentViewerBase.cs
- DrawListViewItemEventArgs.cs
- AddInContractAttribute.cs
- BypassElementCollection.cs
- WindowCollection.cs
- StorageMappingItemCollection.cs
- SourceChangedEventArgs.cs
- SplineKeyFrames.cs
- OleDbSchemaGuid.cs
- XamlVector3DCollectionSerializer.cs
- ComponentResourceKeyConverter.cs
- WebBrowserPermission.cs
- ListBoxChrome.cs
- InfocardChannelParameter.cs
- SqlError.cs
- CachedPathData.cs
- GPRECTF.cs
- PocoEntityKeyStrategy.cs
- Int16Converter.cs
- HierarchicalDataSourceControl.cs
- serverconfig.cs
- WS2007HttpBindingCollectionElement.cs
- BooleanStorage.cs
- CommandManager.cs
- CodeGeneratorOptions.cs
- Route.cs
- TextProperties.cs
- ContravarianceAdapter.cs
- XmlSchemaAny.cs
- PageRequestManager.cs
- JavascriptCallbackResponseProperty.cs
- NumberSubstitution.cs
- SetterBaseCollection.cs
- CompiledXpathExpr.cs
- Terminate.cs
- TraceRecord.cs
- CommonProperties.cs
- Polyline.cs
- CodeAssignStatement.cs
- IPAddress.cs
- BitmapFrame.cs
- MultipartIdentifier.cs
- OpenFileDialog.cs
- FormatControl.cs
- CustomError.cs
- DrawingGroupDrawingContext.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- SpotLight.cs
- HttpResponseBase.cs
- OptimizedTemplateContentHelper.cs