當事情發生了,或者我的單元測試以不可預測的方式表現時,我通常必須進入調試模式。我花99%的時間在調試模式下檢查對象上的字段值以驗證其狀態。用於記錄對象內部狀態的工具或框架擴展或代碼片段?
我已經建立了log4net,看起來如果我可以輕鬆添加一行代碼來註銷對象的狀態,那麼我可以刪除大部分啓動龐大調試器的需求。問題當然是隱式公開對象狀態,你需要手動覆蓋每個對象的ToString()方法。我希望能夠做的是能夠做到logger.LogState(someObject)
並註銷了對象狀態,包括至少一個所有私有變量的格式化列表,對某些任意深度的引用和集合。
有沒有人知道一個工具/框架/代碼片段,可以用來生成任何對象的內部狀態的字符串?我當然可以自己寫一篇,但這是一個不平凡的問題,我更喜歡有人思考的東西。
是的,假設你有你的對象的控制權。當探索NHibernate如何工作時,並不是很好。 – 2010-04-26 01:23:16