簡體   English   中英

如何使用自定義`TraceListener`記錄斷言消息

[英]How to log assert messages with a custom `TraceListener`

我實現了一個自定義的TraceListener ,它既記錄發送到Write方法的消息,又使用Win32 API函數OutputDebugString將它們輸出到Win32跟蹤。 每當我的應用程序使用System.Diagnostics.Debug.WriteSystem.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM