summaryrefslogtreecommitdiff
path: root/src/mscorlib/src/System/Diagnostics/AssertFilter.cs
blob: b301776a229329946aab43cbfec1b55041e7e31d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

namespace System.Diagnostics {
  
    
    using System;
    using System.Runtime.Versioning;
   // A Filter is used to decide whether an assert failure 
   // should terminate the program (or invoke the debugger).  
   // Typically this is done by popping up a dialog & asking the user.
   // 
   // The default filter brings up a simple Win32 dialog with 3 buttons.
    
    [Serializable]
    abstract internal class AssertFilter
    {
    
        // Called when an assert fails.  This should be overridden with logic which
        // determines whether the program should terminate or not.  Typically this
        // is done by asking the user.
        //
        // The windowTitle can be null.
        abstract public AssertFilters  AssertFailure(String condition, String message, 
                                  StackTrace location, StackTrace.TraceFormat stackTraceFormat, String windowTitle);
    
    }
    // No data, does not need to be marked with the serializable attribute
    internal class DefaultFilter : AssertFilter
    {
        internal DefaultFilter()
        {
        }
    
        [System.Security.SecuritySafeCritical]  // auto-generated
        public override AssertFilters  AssertFailure(String condition, String message, 
                                  StackTrace location, StackTrace.TraceFormat stackTraceFormat,
                                  String windowTitle)
    
        {
            return (AssertFilters) Assert.ShowDefaultAssertDialog (condition, message, location.ToString(stackTraceFormat), windowTitle);
        }
    }

}