2009-06-30 8 views
3

XAMLが読み込まれている間に何が起こるかを知る方法を見たいと思います。どのクラスがインスタンス化されているのか、どのような順序でクラス化されていますか?どのプロパティがどのような値に設定され、どのような順序で設定されていますか?どのメソッドが呼び出されているか(BeginInit、EndInitなど)、どのような順序で、どのパラメータでそんなこと。XAMLの読み込み中に何が起こるかをどのようにトレースできますか?

(誰もが理由として好奇心旺盛ならXAMLローダーはI can't duplicate in code何かの魔法をやっている、と私はそれが何であるかを把握しようとしているので、それはです。)

他にも、XAMLローダーが何をしているかを誰かが知ることができますか?私にコールグラフを与えるツール(プロファイラ、多分?)はありますか? XAMLローダーで何らかのログを有効にする方法はありますか?思考/提案?


編集:スティーブは自分のサンプルコードは、すべてのイベントが2回表示を取得せても、答えを持っていないためにリンク先の記事。参考までに、コードでこの作業を行う方法です(app.configの変更は必要ありません)。 InitializeComponent()呼び出しの前にこれらの行を追加します(または、デバッガでイミディエイトウィンドウに両方の行を入力):

PresentationTraceSources.Refresh(); 
PresentationTraceSources.MarkupSource.Switch.Level = SourceLevels.All; 

これは魔法のようにセットされますプロパティを含む、詳細な出力がVSの出力ウィンドウに表示するようになります舞台裏で

答えて

1

多くのバインディングとローディングはsystem.diagnosticsでトレースできます。私はこの名前空間を使っていくつかの問題を発見しました。 WPFの他のすべてと同じように扱いにくいですが、うまくいきます。何が設定されているのか、どこにあるのかを見ることができます。

関連する問題