Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CompMod / System / Diagnostics / CorrelationManager.cs / 1305376 / CorrelationManager.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Collections; using System.Collections.Specialized; using System.Threading; using System.Runtime.Remoting.Messaging; namespace System.Diagnostics { public class CorrelationManager { private const string transactionSlotName = "System.Diagnostics.Trace.CorrelationManagerSlot"; private const string activityIdSlotName = "E2ETrace.ActivityID"; internal CorrelationManager() { } public Guid ActivityId { get { Object id = CallContext.LogicalGetData(activityIdSlotName); if (id != null) return (Guid) id; else return Guid.Empty; } set { CallContext.LogicalSetData(activityIdSlotName, value); } } public Stack LogicalOperationStack { get { return GetLogicalOperationStack(); } } public void StartLogicalOperation(object operationId) { if (operationId == null) throw new ArgumentNullException("operationId"); Stack idStack = GetLogicalOperationStack(); idStack.Push(operationId); } public void StartLogicalOperation() { StartLogicalOperation(Guid.NewGuid()); } public void StopLogicalOperation() { Stack idStack = GetLogicalOperationStack(); idStack.Pop(); } private Stack GetLogicalOperationStack() { Stack idStack = CallContext.LogicalGetData(transactionSlotName) as Stack; if (idStack == null) { idStack = new Stack(); CallContext.LogicalSetData(transactionSlotName, idStack); } return idStack; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Collections; using System.Collections.Specialized; using System.Threading; using System.Runtime.Remoting.Messaging; namespace System.Diagnostics { public class CorrelationManager { private const string transactionSlotName = "System.Diagnostics.Trace.CorrelationManagerSlot"; private const string activityIdSlotName = "E2ETrace.ActivityID"; internal CorrelationManager() { } public Guid ActivityId { get { Object id = CallContext.LogicalGetData(activityIdSlotName); if (id != null) return (Guid) id; else return Guid.Empty; } set { CallContext.LogicalSetData(activityIdSlotName, value); } } public Stack LogicalOperationStack { get { return GetLogicalOperationStack(); } } public void StartLogicalOperation(object operationId) { if (operationId == null) throw new ArgumentNullException("operationId"); Stack idStack = GetLogicalOperationStack(); idStack.Push(operationId); } public void StartLogicalOperation() { StartLogicalOperation(Guid.NewGuid()); } public void StopLogicalOperation() { Stack idStack = GetLogicalOperationStack(); idStack.Pop(); } private Stack GetLogicalOperationStack() { Stack idStack = CallContext.LogicalGetData(transactionSlotName) as Stack; if (idStack == null) { idStack = new Stack(); CallContext.LogicalSetData(transactionSlotName, idStack); } return idStack; } } } // 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
- ApplicationManager.cs
- ProxyGenerationError.cs
- SchemaTableOptionalColumn.cs
- Point.cs
- NamespaceDecl.cs
- ErrorRuntimeConfig.cs
- NameValueSectionHandler.cs
- MailDefinition.cs
- Validator.cs
- VectorCollection.cs
- XPathSelfQuery.cs
- ViewManagerAttribute.cs
- CallSite.cs
- KnowledgeBase.cs
- LocatorPart.cs
- COSERVERINFO.cs
- Rect.cs
- ParentQuery.cs
- XmlSchemaObject.cs
- TcpChannelListener.cs
- SequentialWorkflowRootDesigner.cs
- DBSchemaRow.cs
- BackStopAuthenticationModule.cs
- DataPagerFieldItem.cs
- FunctionImportElement.cs
- StrongNameKeyPair.cs
- SelectionItemPattern.cs
- MultiByteCodec.cs
- PaperSource.cs
- CharUnicodeInfo.cs
- XmlILStorageConverter.cs
- WebServiceReceive.cs
- ConditionalDesigner.cs
- Renderer.cs
- OpenFileDialog.cs
- ParseChildrenAsPropertiesAttribute.cs
- MultipartContentParser.cs
- OAVariantLib.cs
- ClosableStream.cs
- ExternalCalls.cs
- WeakReferenceEnumerator.cs
- MasterPageBuildProvider.cs
- ManualResetEvent.cs
- SecurityManager.cs
- DefaultValueConverter.cs
- SecurityContext.cs
- ResXBuildProvider.cs
- DataSourceProvider.cs
- ServiceOperationParameter.cs
- RenderingEventArgs.cs
- SiteIdentityPermission.cs
- PeerFlooder.cs
- LookupNode.cs
- AutomationElementIdentifiers.cs
- DBCommandBuilder.cs
- Int32CAMarshaler.cs
- GACIdentityPermission.cs
- RegistrationServices.cs
- UrlParameterWriter.cs
- ListSourceHelper.cs
- DBNull.cs
- StackOverflowException.cs
- COMException.cs
- FontUnit.cs
- DesignTimeValidationFeature.cs
- OuterGlowBitmapEffect.cs
- HttpDictionary.cs
- TemplateControlCodeDomTreeGenerator.cs
- TCPListener.cs
- odbcmetadatacollectionnames.cs
- OdbcParameter.cs
- GeometryHitTestParameters.cs
- ErrorStyle.cs
- DrawingServices.cs
- BindingContext.cs
- XmlSchemaSimpleContentRestriction.cs
- SchemaElementDecl.cs
- ThrowHelper.cs
- ImportContext.cs
- ToolStripMenuItemDesigner.cs
- FastEncoder.cs
- DiscoveryClientChannelFactory.cs
- MultiBinding.cs
- DescendentsWalkerBase.cs
- SpecialNameAttribute.cs
- DataFormats.cs
- PieceNameHelper.cs
- ComplexLine.cs
- ValueTypeFixupInfo.cs
- EmbeddedObject.cs
- TimeZone.cs
- Thread.cs
- FieldAccessException.cs
- AnnotationDocumentPaginator.cs
- SynchronizedPool.cs
- EmptyEnumerator.cs
- RangeBase.cs
- GPPOINT.cs
- FillBehavior.cs
- FileLogRecord.cs