我有一個屬性類,我需要攔截debuggind評估。如何通過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」和Value =「ok」
謝謝你的幫助。
編輯:
我嘗試用 「System.Diagnostics.Debugger.IsAttached」 但卻調試器始終高度。不僅當IDE類屬性通過監視窗口。
我們不知道您爲什麼需要這樣做。考慮使用混淆器來讓別人的生活更加困難。 –
如果相關,請考慮使用'[DebuggerDisplay]'屬性(https://msdn.microsoft.com/zh-cn/library/x810d419.aspx)更改在Visual Studio工具窗口中呈現的內容,但它並未設計用於混淆,並且它可以很容易地解決。 –
它不適用於混淆器。實際上,這個屬性附有緩存系統和遠程呼叫系統。我不想調試器觸發遠程調用。但我想讓它在緩存中獲得價值。 屬性[System.Diagnostics.DebuggerBrowsable]可以完全禁用評估。但在這種情況下,我可以輕鬆獲得緩存中的值... –