Exemplo n.º 1
0
        public static void TraceInMemory <T0, T1, T2>(int lid, TraceType traceType, Guid componentGuid, int traceTag, long id, string format, T0 argument0, T1 argument1, T2 argument2)
        {
            MemoryTraceBuilder memoryTraceBuilder = ExTraceInternal.GetMemoryTraceBuilder();
            bool flag = false;

            try
            {
                if (!memoryTraceBuilder.InsideTraceCall)
                {
                    memoryTraceBuilder.BeginEntry(traceType, componentGuid, traceTag, id, format);
                    memoryTraceBuilder.AddArgument <T0>(argument0);
                    memoryTraceBuilder.AddArgument <T1>(argument1);
                    memoryTraceBuilder.AddArgument <T2>(argument2);
                    memoryTraceBuilder.EndEntry();
                }
                flag = true;
            }
            finally
            {
                if (!flag)
                {
                    memoryTraceBuilder.Reset();
                }
            }
        }
Exemplo n.º 2
0
        internal static void AddTraceArgument(MemoryTraceBuilder builder, object argument)
        {
            if (argument == null)
            {
                builder.AddArgument(string.Empty);
                return;
            }
            if (argument is int)
            {
                builder.AddArgument((int)argument);
                return;
            }
            if (argument is long)
            {
                builder.AddArgument((long)argument);
                return;
            }
            if (argument is Guid)
            {
                builder.AddArgument((Guid)argument);
                return;
            }
            ITraceable traceable = argument as ITraceable;

            if (traceable != null)
            {
                builder.AddArgument <ITraceable>(traceable);
                return;
            }
            builder.AddArgument <object>(argument);
        }