我有一个带有属性的类,我需要拦截调试评估。
我不知道我该怎么做。
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
}