我有一個遺留項目,我可以經常看到具有多達100個屬性的模型類,並且在調試時我希望按特定順序查看它們,因爲它是有序的數據序列。是否有任何一種屬性可以使Visual Studio調試器以特定順序顯示它們,而不是按名稱對它們進行排序?在VS中檢查時,有什麼方法使對象的屬性以特定順序出現?
2
A
回答
1
您可以使用DebuggerDisplayAttribute類來定製調試器描述。請在MSDN中閱讀。
如果您將該屬性追加到某個類中,您可以定義在調試過程中如何查看描述。
來自MSDN的一個示例。這裏value
和key
是調試過程中會更加明顯:
[DebuggerDisplay("{value}", Name = "{key}")] internal class KeyValuePairs { private IDictionary dictionary; private object key; private object value; public KeyValuePairs(IDictionary dictionary, object key, object value) { this.value = value; this.key = key; this.dictionary = dictionary; } }
這裏會更容易看到調試過程中的價值和關鍵。
你可以考慮DebuggerBrowsableAttribute它決定什麼將調試器顯示某些成員。你甚至可以隱藏一些成員。
下面是一些DebuggerBrowsableAttribute例如:
public class User
{
[DebuggerBrowsable(DebuggerBrowsableState.Collapsed)]
public string Login { get; set; }
[DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
public FullName Name { get; set; }
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
public string HashedPassword { get; set; }
}
正如你看到的財產HashedPassword
將從調試被隱藏。
另外,您可以在Visual Studio中使用Watch窗口並配置您想要跟蹤的變量。
0
您可以使用DebuggerDisplay
屬性來控制數據在工具提示中的顯示方式,例如調試時
[DebuggerDisplay("Age = {Age}, Name = '{Name}'")]
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
參考:
相關問題
- 1. 檢查對象具有特定屬性
- 2. 爲什麼你需要有時選擇對象,以避免出現「對象不支持此屬性或方法」
- 3. 有什麼方法可以在DXL的對話框中顯示對象屬性?
- 4. 檢查對象有順序使用LINQ
- 5. 檢查對象是否具有特定值的屬性
- 6. 檢查NSArray是否包含具有特定屬性的對象
- 7. 以特定順序獲取類屬性
- 8. 有沒有辦法控制JSON對象中的屬性順序?
- 9. 檢查列表中的特定對象屬性是否唯一
- 10. 檢查對象列表是否包含具有特定屬性值的對象
- 11. 屬性在一個特定的順序
- 12. 查找對象內的特定屬性
- 13. 檢查對象屬性是否爲空的最佳方法是什麼?
- 14. 如何檢查對象是否具有某些方法/屬性?
- 15. 替換出現在特定的順序
- 16. 按特定順序排列屬性以便輸出
- 17. 有沒有更好的方法來檢查對象屬性的存在?
- 18. 有什麼方法可以獲取Java中特定類創建的對象?
- 19. 有沒有什麼辦法來檢查類的屬性在C#
- 20. 遍歷對象的屬性,以檢查是否有在陣列
- 21. .NET System.String.Length屬性使用什麼順序?
- 22. 在序列化屬性中查找具有特定值的對象
- 23. 列出對象的方法和屬性
- 24. WPF綁定到具有特定屬性的對象的屬性
- 25. 使用對象屬性在敲除js中檢查綁定
- 26. 有什麼辦法可以防止替換JavaScript對象屬性?
- 27. C++:如何檢查具有特定屬性的對象存在於一組
- 28. 什麼是一個好的網站來檢查何時在瀏覽器中出現JavaScript對象/方法?
- 29. 有什麼方法可以動態地改變對象屬性的值嗎? JavaScript
- 30. Str對象沒有屬性出現