有沒有辦法在調試時禁用WPF非常惱人的異常封裝?禁用WPF異常封裝調試
一個例子是擁有一個文本框的窗口,文本框被綁定到一個屬性,該屬性上的getter引發了一個無法由表示框架處理的異常(拋出新的StackOverflowException()例)。
什麼,我應該看到的是
get
{
throw new StackOverflowException(); // < Exception happened here
}
相反,我看到的是什麼...
No Source Available
Call Stack Location:
PresentationFramework.dll!MS.Internal.Data.PropertyPathWorker.RawValue(int k) + 0x64 bytes
因爲WPF的異常包裹的這個異常有時也抓住了,然後出動要麼在MS.Internals內重新生成或隱藏,並且不可能返回到實際的異常站點。這導致我們看到一個巨大的PresentationFramework.dll,PresentationCore.dll和WindowsBase.dll的調用堆棧,但沒有用戶代碼,除了App.Main()。
這發生在綁定,在創建過程中調用的事件,以及其他完全隨機的情況沒有押韻或原因(按鈕點擊時有例外,有時會這樣做給我)。現在是的,我可以查看異常中的堆棧跟蹤,但是堆棧跟蹤也非常沒有意義,因爲我無法返回到該框架以查看拋出時的變量。
+1。我總是看到這個 - 如果我的窗口的構造函數拋出一個異常,我不得不深入到兩個InnerExceptions級別來找出實際的錯誤。 –