ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/AnywhereTS-MSSQL/trunk/AnywhereTS.Logging/Logging.cs
(Generate patch)

Comparing trunk/AnywhereTS.Logging/Logging.cs (file contents):
Revision 70 by william, Thu Jul 12 20:47:35 2012 UTC vs.
Revision 71 by william, Thu Jul 12 21:04:56 2012 UTC

# Line 29 | Line 29 | namespace AnywhereTS
29                  if (tc == null) { return new List<string>(); }
30                  else { return GetMessagesFromThreadContextStack(tc); }
31              }
32 <            catch { return new List<string>(); }            
32 >            catch { return new List<string>(); }
33          }
34          public static List<string> GetMessagesFromThreadContextStack(ThreadContextStack rawTCS)
35          {
36 <            ThreadContextStack oldrawTCS = rawTCS;
37 <            List<string> stack_objects = new List<string>();
38 <          
39 <                ThreadContextStack context = (rawTCS as ThreadContextStack);
40 <                for (int i = 0; i < context.Count; i++)
41 <                {
42 <                    Type t = typeof(ThreadContextStack);
43 <                    MethodInfo mi = t.GetMethod("GetFullMessage", BindingFlags.NonPublic | BindingFlags.Instance);
44 <                    string message = mi.Invoke(context, null).ToString();
45 <                    stack_objects.Add(message);
46 <                    context.Pop();
47 <                }
48 <                rawTCS = oldrawTCS;            
49 <            return stack_objects;
36 >            Type t = typeof(ThreadContextStack);
37 >            //ConstructorInfo ci = t.GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[0], null);
38 >            //ThreadContextStack tmpRawTCS = null;
39 >            //tmpRawTCS = (ThreadContextStack)ci.Invoke(null);
40 >            List<string> stObjects = new List<string>();
41 >            ThreadContextStack context = (rawTCS as ThreadContextStack);
42 >            for (int i = 0; i < context.Count; i++)
43 >            {
44 >                MethodInfo mi = t.GetMethod("GetFullMessage", BindingFlags.NonPublic | BindingFlags.Instance);
45 >                string message = mi.Invoke(context, null).ToString();
46 >                stObjects.Add(message);
47 >                context.Pop();
48 >            }
49 >            stObjects.Reverse();
50 >            rawTCS.Clear();
51 >            // push the popped Context message back onto the original ContextStack
52 >            foreach (string stObject in stObjects) { rawTCS.Push(stObject); }
53 >            return stObjects;
54          }
55          #endregion
56      }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines