Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / CompMod / System / Diagnostics / CorrelationManager.cs / 1 / 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
- NTAccount.cs
- recordstatefactory.cs
- DataBindingList.cs
- AspNetCompatibilityRequirementsMode.cs
- FormViewUpdateEventArgs.cs
- CommonXSendMessage.cs
- QueueProcessor.cs
- FrugalMap.cs
- Expression.cs
- DynamicResourceExtensionConverter.cs
- X509UI.cs
- AppSecurityManager.cs
- __Filters.cs
- _RequestCacheProtocol.cs
- DataGridCommandEventArgs.cs
- QilLiteral.cs
- TextServicesContext.cs
- MetaChildrenColumn.cs
- Propagator.cs
- IImplicitResourceProvider.cs
- RegexRunner.cs
- CustomCategoryAttribute.cs
- PagesSection.cs
- EncryptedKey.cs
- SQLDateTimeStorage.cs
- Visual3D.cs
- FrameworkElement.cs
- PageAdapter.cs
- SoapSchemaMember.cs
- ActiveDocumentEvent.cs
- ColorTranslator.cs
- WebServiceHandlerFactory.cs
- ErrorInfoXmlDocument.cs
- ToolStripStatusLabel.cs
- SqlBooleanizer.cs
- Convert.cs
- DataPagerFieldCommandEventArgs.cs
- ContainerParaClient.cs
- PartialTrustVisibleAssembliesSection.cs
- RuntimeHandles.cs
- SchemaEntity.cs
- ConnectionManagementElementCollection.cs
- PersistenceMetadataNamespace.cs
- SqlCaseSimplifier.cs
- Win32Exception.cs
- TextServicesContext.cs
- Substitution.cs
- PassportIdentity.cs
- HelpEvent.cs
- PropertyTabChangedEvent.cs
- ScrollEvent.cs
- PrimitiveXmlSerializers.cs
- RawTextInputReport.cs
- StyleBamlTreeBuilder.cs
- ReplacementText.cs
- OpCopier.cs
- QilLiteral.cs
- TypeToStringValueConverter.cs
- SymLanguageVendor.cs
- DataColumn.cs
- LedgerEntryCollection.cs
- FrameSecurityDescriptor.cs
- TextSearch.cs
- commandenforcer.cs
- ValidatorCompatibilityHelper.cs
- CompilerParameters.cs
- LinkButton.cs
- SqlTriggerContext.cs
- ExportFileRequest.cs
- IntegerValidator.cs
- XPathNodePointer.cs
- SystemGatewayIPAddressInformation.cs
- SqlDataSourceCache.cs
- ByteRangeDownloader.cs
- ReadOnlyCollectionBase.cs
- SQLResource.cs
- BookmarkEventArgs.cs
- EdmComplexPropertyAttribute.cs
- ForceCopyBuildProvider.cs
- SoapClientMessage.cs
- ConstructorExpr.cs
- DurationConverter.cs
- DataView.cs
- DataTableExtensions.cs
- ExtenderControl.cs
- LinkedResourceCollection.cs
- PageEventArgs.cs
- ServiceProviders.cs
- DrawingGroupDrawingContext.cs
- DataGridHelper.cs
- DataControlButton.cs
- SettingsProviderCollection.cs
- ResizeGrip.cs
- CreateUserWizard.cs
- CompatibleComparer.cs
- Asn1Utilities.cs
- XmlBaseReader.cs
- ScaleTransform.cs
- RootBrowserWindow.cs
- NativeWindow.cs