我有一個文本框,我想以一種人類可讀的方式在其中顯示一個C#對象,僅用於調試原因。如果可能,我不想使用外部庫。我該怎麼做呢?一種漂亮的打印C#對象的方法
回答
它序列化到JSON。它可以像其他人所建議的那樣在ToString()
方法中完成,但我認爲如果您打算僅將其用於調試,那麼這是不合適的。
我實際上喜歡這個想法比自己的ToString()更好。一個JSON序列化會以比XML更「輕」的格式顯示每個公共字段及其值,而不會觸及其他地方可能使用的ToString。以下是一個簡單的ToJSON擴展方法:http://weblogs.asp.net/scottgu/archive/2007/10/01/tip-trick-building-a-tojson-extension-method-using-net-3-5.aspx – KeithS 2011-06-10 16:30:03
一個快速和骯髒的例子在這裏會很有用,特別是因爲這可能是語言的新手最需要的! – 2016-03-04 06:59:18
覆蓋.ToString()
方法。
一個簡單而簡單的方法是覆蓋ToString
方法。
這裏有一個鏈接:How to override ToString
我用這個頗有幾分填充列表框與自定義對象:
public override string ToString()
{
return String.Format("{0}:{1}:{2}", Property1, Property2, Property3);
}
如果只是爲了調試目的,使用DebuggerDisplayAttribute。
使用這個屬性將改變物體看起來像在監視窗口中的值部分的內容(或ONT他鼠標懸停在調試過程中)
用法:
[DebuggerDisplay("Name = {FirstName} {LastName}")]
public class Person {
public string FirstName { get; set; }
public string LastName { get; set; }
}
如果您使用JSON然後我會建議使用Newtonsofts Json庫,然後可以使用Json表示法輸出整個對象,並使用間距和換行符對其進行格式化。我們用它來輕鬆地進行調試顯示覆雜的對象:
var jsonString = JsonConvert.SerializeObject(
property, Formatting.Indented,
new JsonConverter[] {new StringEnumConverter()});
在這裏我也用字符串枚舉轉換器,以顯示枚舉作爲他們的字符串表示,而不是作爲一個整數。
庫可通過的NuGet爲Json.Net或Newtonsoft的Json
或者,你可以在這裏:
我也用的Json一陣子;但現在我創建了一個PrettyPrint-Minimod。你可以通過Nuget添加它(它是一個Sourcecode發行版)。找出Minimod在這裏。
它很好地打印對象圖,並具有一些枚舉和字典的魔力。它也試圖找出適當的換行符。
我會盡快博客 - 不過先走一步,試試吧:-)
- 安裝,包裝ServiceStack.Text
obj.Dump();
如果你不這樣做想要使用外部庫,編寫自己的Dump()擴展方法。
obj.ToDump()讓VS找到正確的包來幫助你使用include – BozoJoe 2016-06-24 00:14:24
- 1. 在smarty漂亮的打印json對象
- 2. 在ASM漂亮的打印方法Bytecode
- 3. 漂亮的打印
- 4. 漂亮打印Python xml.dom.Element對象
- 5. 打印對象的漂亮打印表示的頭(前幾行)
- 6. 漂亮打印
- 7. 漂亮的打印數組對象,而不是對象數組?
- 8. 漂亮打印JSON
- 9. 在一條線上的Lisp漂亮打印對象
- 10. Python中的漂亮打印C#
- 11. 漂亮的打印表在C++
- 12. JavaScript +漂亮的打印JSON
- 13. Python的漂亮打印
- 14. 漂亮的打印JSON Rails
- 15. 漂亮的印刷JavaScript對象
- 16. 漂亮的打印一個TCL列表
- 17. 打印一個漂亮的樹
- 18. c printf漂亮打印格式
- 19. C++ GDB Python漂亮打印教程?
- 20. 在python(pythonic方式)漂亮打印json
- 21. Angular2打字稿 - 打印漂亮的XML
- 22. 在Visual Studio調試器中打印漂亮的對象圖形
- 23. 漂亮打印JSON與JBuilder
- 24. 漂亮打印JSON轉儲
- 25. boost :: property_tree XML漂亮打印
- 26. 在Clojure漂亮打印
- 27. MongoDB打印漂亮與PyMongo
- 28. 蟒蛇漂亮打印parse_and_eval
- 29. 漂亮打印OCaml for windows
- 30. JSON漂亮打印在javascript
你是什麼意思顯示一個C#對象?顯示其全名,屬性或什麼? – 2011-06-10 16:23:34