WorkflowTraceTransfer.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / RunTime / WorkflowTraceTransfer.cs / 1305376 / WorkflowTraceTransfer.cs

                            using System; 
using System.IO;
using System.Threading;
using System.Diagnostics;
 
/// 
/// Summary description for Class1 
///  
namespace System.Workflow.Runtime
{ 
 	internal class WorkflowTraceTransfer: IDisposable
	{
        Guid oldGuid;
        bool transferBackAtClose; 

        public WorkflowTraceTransfer(Guid instanceId) 
        { 
            this.oldGuid = Trace.CorrelationManager.ActivityId;
 
            if (!this.oldGuid.Equals(instanceId)) //Avoid redundant transfers.
            {
                WorkflowTrace.Runtime.TraceTransfer(
                    0, 
                    null,
                    instanceId 
                    ); 
                Trace.CorrelationManager.ActivityId = instanceId;
                WorkflowTrace.Runtime.TraceEvent(TraceEventType.Start, 0, "Workflow Trace"); 
                this.transferBackAtClose = true;
            }
        }
 
        #region IDisposable Members
 
        public void Dispose() 
        {
            if (this.transferBackAtClose) 
            {
                WorkflowTrace.Runtime.TraceTransfer(
                     0,
                     null, 
                     oldGuid
                     ); 
                WorkflowTrace.Runtime.TraceEvent(TraceEventType.Stop, 0, "Workflow Trace"); 
                Trace.CorrelationManager.ActivityId = oldGuid;
            } 
        }
        #endregion
    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
using System; 
using System.IO;
using System.Threading;
using System.Diagnostics;
 
/// 
/// Summary description for Class1 
///  
namespace System.Workflow.Runtime
{ 
 	internal class WorkflowTraceTransfer: IDisposable
	{
        Guid oldGuid;
        bool transferBackAtClose; 

        public WorkflowTraceTransfer(Guid instanceId) 
        { 
            this.oldGuid = Trace.CorrelationManager.ActivityId;
 
            if (!this.oldGuid.Equals(instanceId)) //Avoid redundant transfers.
            {
                WorkflowTrace.Runtime.TraceTransfer(
                    0, 
                    null,
                    instanceId 
                    ); 
                Trace.CorrelationManager.ActivityId = instanceId;
                WorkflowTrace.Runtime.TraceEvent(TraceEventType.Start, 0, "Workflow Trace"); 
                this.transferBackAtClose = true;
            }
        }
 
        #region IDisposable Members
 
        public void Dispose() 
        {
            if (this.transferBackAtClose) 
            {
                WorkflowTrace.Runtime.TraceTransfer(
                     0,
                     null, 
                     oldGuid
                     ); 
                WorkflowTrace.Runtime.TraceEvent(TraceEventType.Stop, 0, "Workflow Trace"); 
                Trace.CorrelationManager.ActivityId = oldGuid;
            } 
        }
        #endregion
    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.

                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK