[英]How to log assert messages with a custom `TraceListener`
我實現了一個自定義的TraceListener
,它既記錄發送到Write
方法的消息,又使用Win32 API函數OutputDebugString
將它們輸出到Win32跟蹤。 每當我的應用程序使用System.Diagnostics.Debug.Write
或System.Diagnostics.Trace.Write
,跟蹤偵聽器都會正確處理消息。
但是,如果我的應用程序遇到諸如System.Diagnostics.Debug.Assert
類的斷言,我想截取發送到調試輸出的內容。 不知何故,跟蹤偵聽器不會被斷言產生的消息調用。 這可能嗎? 還是我必須提供我自己的Assert
實現才能使其工作?
您是否在發布模式下構建? Debug.Assert具有為DEBUG符號定義的ConditionalAttribute,因此編譯器將在Release模式下刪除這些調用。
Debug.Assert在您的跟蹤偵聽器上調用Fail方法。 實施正確嗎? 如果尚未覆蓋它,則默認為調用以“ Fail:”開頭的WriteLine。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.