Пример #1
0
        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();
            }
        }
Пример #2
0
        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();
        }