1

友達 。これに従ってWPFデータバインディングをデバッグしています。xamlにPresentationTraceSources.TraceLevelを追加しました。

<Window …
xmlns:diagnostics="clr-namespace:System.Diagnostics;assembly=WindowsBase"
/>

<TextBlock Text="{Binding Path=Caption, diagnostics:PresentationTraceSources.TraceLevel=High}" … />

F5キーを押してVS2008でWPFアプリケーションを起動すると、出力ウィンドウにデータバインディングの詳細メッセージが表示されました。

System.Windows.Data Warning: 47 : Created BindingExpression (hash=25209742) for Binding (hash=3888474)
…
System.Windows.Data Warning: 91 : BindingExpression (hash=25209742): GetValue at level 0 from Star (hash=31609076) using RuntimePropertyInfo(Caption): ‘ ‘
System.Windows.Data Warning: 71 : BindingExpression (hash=25209742): TransferValue – got raw value ‘ ‘
System.Windows.Data Warning: 78 : BindingExpression (hash=25209742): TransferValue – using final value ‘ ‘

しかし、アプリを直接実行してVS2008をプロセスにアタッチすると、出力ウィンドウにデータバインディングメッセージが表示されません。

プロセスに接続したときにこれらのトレースメッセージが表示されないのはなぜですか?これらのデータバインディングトレースメッセージを取得する方法は?

(本番環境では、私のアプリは別のexeによって起動され、私ができることはプロセスにアタッチすることだけです)。

4

1 に答える 1

0

これは純粋に推測です。

F5を使用してVisualStudioからアプリケーションを起動すると、コンソール出力ウィンドウが表示され、おそらくPresentationTraceSourcesの初期化中に、VisualStudio出力コンソールに接続できるデフォルトのConsoleTraceListenerが追加されます。

デバッガーの外部でアプリケーションを起動すると、ConsoleTraceListenerが正常に追加されない/追加されない可能性があります。したがって、プロセスをデバッガーにアタッチすると、WPFデータバインディングトレースが実行されます。ソースは出力ウィンドウにリダイレクトされません。

プロセスにアタッチした後、コンソールリスナーをアタッチできるかもしれません。

System.Diagnostics.PresentationTraceSources.Refresh();
System.Diagnostics.PresentationTraceSources.DataBindingSource.Listeners.Clear();
System.Diagnostics.PresentationTraceSources.DataBindingSource.Listeners.Add(new ConsoleTraceListener());
System.Diagnostics.PresentationTraceSources.DataBindingSource.Switch.Level = System.Diagnostics.SourceLevels.Warning;

最後に、Bea Stollnitz / Costaの記事に記載されているApp.Configを使用して、出力をテキストファイルに送信しましたか?....それはうまくいきましたか?

プロセスにアタッチした後も、System.Diagnostics.PresentationTraceSources.DataBindingSource.Switch.Levelの値を確認する価値があるかもしれません。

これは、TraceSourcesメカニズム全体についてもう少し詳しく説明します。

http://blogs.msdn.com/b/mikehillberg/archive/2006/09/14/wpftracesources.aspx

于 2012-07-10T10:35:40.570 に答える