public static void Check() { using (var stream = new FileStream(Assembly.GetEntryAssembly().Location + ".DisposeLeaks.log", FileMode.Create)) using (var writer = new TraceAndStreamWriter(stream)) { writer.WriteLine("===="); writer.WriteLine("Disposer check"); if (_dict.Count > 0) { writer.WriteLine(string.Format( CultureInfo.InvariantCulture, "{0} leaks detected!", _dict.Count)); } writer.WriteLine("===="); foreach (var obj in _dict) { writer.WriteLine("Disposable object leaked!"); writer.WriteLine("Hash code: " + obj.Key.ToString(CultureInfo.InvariantCulture)); writer.WriteLine("Type: " + obj.Value.Target.GetType().FullName); writer.WriteLine("Created at: " + Environment.NewLine + obj.Value.StackTrace); writer.WriteLine(""); } } if (_dict.Count > 0 && Debugger.IsAttached) { Debugger.Break(); } }
public static void Check() { using(var stream = new FileStream(Assembly.GetEntryAssembly().Location + ".DisposeLeaks.log", FileMode.Create)) using(var writer =new TraceAndStreamWriter(stream)) { writer.WriteLine("===="); writer.WriteLine("Disposer check"); if (_dict.Count > 0) writer.WriteLine(string.Format( CultureInfo.InvariantCulture, "{0} leaks detected!", _dict.Count)); writer.WriteLine("===="); foreach (var obj in _dict) { writer.WriteLine("Disposable object leaked!"); writer.WriteLine("Hash code: " + obj.Key.ToString(CultureInfo.InvariantCulture)); writer.WriteLine("Type: " + obj.Value.Target.GetType().FullName); writer.WriteLine("Created at: " + Environment.NewLine + obj.Value.StackTrace); writer.WriteLine(""); } } if (_dict.Count > 0 && Debugger.IsAttached) Debugger.Break(); }