2017-01-28 1 views
0

はのは、私がは、複合型の値を検査するために使用することがログのIntelliTraceができます

class A 
{ 
    B b; 
} 

class B 
{ 
    C c; 
} 

は私が取るメソッドを持って次のように、それ自体が別のクラスCの何かが含まれているクラスBが含まれているクラスAがあるとしましょうクラスAのインスタンスをパラメータとして返します。

private void MyMethod(A a) 
{ 

} 

このメソッドで渡されたこのクラスAのインスタンスには、何らかの問題の原因となっているデータが含まれており、それを理解する必要があります。 IntelliTraceのログを取得すると、インスタンスとその子の値を調べることはできますか?

答えて

1

デフォルトでは、それが理由のIntelliTraceの2つの制限すなわち、可能ではありません。:

  • IntelliTraceの記録/ プリミティブデータ型のフィールド/プロパティの値のみをキャプチャします。

  • IntelliTraceはオブジェクトグラフを解析しません。

のはあなたの例を拡張してみましょう:IntelliTraceの中にこの場合

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

は、それがint型であるので、あなたが唯一のProp1の価値がありますログ。 Prop2の場合、設定されているかどうかだけが表示されます。

回避策として、カスタム診断イベントを定義できます。しかし、そう簡単ではありません。まず、Custom TraceSource and debugging using IntelliTraceVS 2010 : Customize IntelliTrace eventsを読んでください。 thisthisの質問も参照してください。

関連する問題