假设我有一个包含B类的A类,它本身包含另一个C类。如下所示
class A
{
B b;
}
class B
{
C c;
}
我有一个方法,它将A类的实例作为参数。
private void MyMethod(A a)
{
}
假设此类方法中传递的此类实例包含一些导致某些问题的数据,我需要弄明白这一点。如果我捕获IntelliTrace日志,我是否能够检查A实例及其任何子节点的值?
答案 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 IntelliTrace和VS 2010 : Customize IntelliTrace events。另请参阅this和this问题。