|
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------
namespace System.ServiceModel.Diagnostics
{
using System;
using System.ServiceModel.Channels;
using System.Diagnostics;
using System.Reflection;
#if USE_REFEMIT
public static class OperationInvokerTrace
#else
static class OperationInvokerTrace
#endif
{
static TraceSource codeGenSource;
static MethodInfo traceInstructionMethod;
internal static SourceSwitch CodeGenerationSwitch
{
get { return CodeGenerationTraceSource.Switch; }
}
internal static void WriteInstruction(int lineNumber, string instruction)
{
CodeGenerationTraceSource.TraceInformation("{0:00000}: {1}", lineNumber, instruction);
}
internal static MethodInfo TraceInstructionMethod
{
get
{
if (traceInstructionMethod == null)
traceInstructionMethod = typeof(OperationInvokerTrace).GetMethod("TraceInstruction", BindingFlags.Static | BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
return traceInstructionMethod;
}
}
#if USE_REFEMIT
public static void TraceInstruction(string instruction)
#else
internal static void TraceInstruction(string instruction)
#endif
{
CodeGenerationTraceSource.TraceEvent(TraceEventType.Verbose, 0, instruction);
}
static TraceSource CodeGenerationTraceSource
{
get
{
if (codeGenSource == null)
codeGenSource = new TraceSource("System.ServiceModel.OperationInvoker.CodeGeneration");
return codeGenSource;
}
}
}
}
|