如何通过 IDE 调试器检测评估



我有一个带有属性的类,我需要拦截调试评估。

我不知道

我该怎么做。

class Foo
{
    public bool DebugIsAllow { get; set; } = false;
    public string Value
    {
        get
        {
            if (!DebugIsAllow && IsDebugging()) throw new Exception();
            return "ok";
        }
    }
    public bool IsDebugging()
    {
        return ?????
    }
    public void Main()
    {
        var v = Value;
Breakpoint here !!!
        DebugIsAllow = true;
Breakpoint here !!!
    }
}

在第一个断点处,如果我为"v"和"值"添加间谍,我想在监视窗口中看到:v="ok"和值="异常">

第二个断点时,我想在监视窗口中看到:v="ok"和值="ok">

谢谢你的帮助。


编辑:

我尝试使用"System.Diagnostics.Debugger.IsAttached",但调试器始终附加。不仅当 IDE 类属性由监视窗口。

使用 [DebuggerDisplay] 属性实现要在调试器中使用的自定义显示方案。例如,Lazy<T>类使用它来停止调试,从而导致延迟计算运行。

https://msdn.microsoft.com/en-us/library/x810d419.aspx

假设定义了 DEBUG 常量,则可以使用此编译器指令:

public bool IsDebugging()
{
#if DEBUG
    return true;
#else
    return false;
#endif
}

相关内容

  • 没有找到相关文章

最新更新