可以使用IntelliTrace日志来检查复杂类型的值

时间:2017-01-28 00:10:54

标签: c# visual-studio-2015 intellitrace

假设我有一个包含B类的A类,它本身包含另一个C类。如下所示

class A
{
  B  b;
}

class B
{
  C  c;
}

我有一个方法,它将A类的实例作为参数。

private void MyMethod(A a)
{

}

假设此类方法中传递的此类实例包含一些导致某些问题的数据,我需要弄明白这一点。如果我捕获IntelliTrace日志,我是否能够检查A实例及其任何子节点的值?

1 个答案:

答案 0 :(得分:1)

默认情况下,由于IntelliTrace的两个限制,即不可能,即:

  • IntelliTrace仅记录/捕获字段/属性的值 这是原始数据类型。

  • IntelliTrace不会分析对象图。

让我们展开你的榜样:

public class A
{
   public int Prop1 { get; set; }
   public C Prop2  { get; set; }
}

在这种情况下,在IntelliTrace日志中,您只能找到Prop1的值,因为它是一个int。在Prop2的情况下,您只会看到它是否已设置。

作为解决方法,您可以尝试定义自定义诊断事件。但是,这并不容易。您可以先阅读Custom TraceSource and debugging using IntelliTraceVS 2010 : Customize IntelliTrace events。另请参阅thisthis问题。