【发布时间】:2016-06-15 17:21:46
【问题描述】:
我有一个具有标准类型属性的类。在调试器中,我希望以某种特定格式查看此特定属性。我在该特定属性上使用属性 DebuggerDisplay,但在调试器的 Watch 窗口中,我看到它应用于整个类,而不是目标属性。我错过了什么?
class Transaction : ITransaction
{
[DebuggerDisplay("{DateAsDebugString}")]
public DateTime Date
{
get;set;
}
string DateAsDebugString
{
get
{
var res = Date.ToShortDateString();
if (Date.TimeOfDay != TimeSpan.Parse("00:00"))
res += " " + Date.TimeOfDay.ToString();
return res;
}
}
}
如何应用属性级调试器格式化/可视化规则?
【问题讨论】:
-
能否尝试在班级级别添加测试
DebuggerDisplayAttribute,看看是否生效?类似[DebuggerDisplay("Testing")]。 -
我刚刚在我目前打开的项目中做了一个快速测试,得到的结果和你一样。从我在 MSDN 上阅读的内容来看,这是正确的用法;我有点困惑为什么它没有像我们预期的那样工作。
-
是的,类级别属性会覆盖字段级别。它为每个类实例显示“测试”,属性仍然被忽略
-
我在类和属性级别应用属性的结果有点不同。我看到类级别属性被完全忽略,并且属性级别 1 显示为好像它已应用于类级别(与屏幕截图中的相同)。我很想说这是 Visual Studio 中的一个错误。
-
所以即使这种行为也是不一致的。我仔细检查了-如果类级别属性存在,则显示其值,否则显示类中第一个字段/属性级别属性的值
标签: .net debugging visual-studio-debugging