2012-03-29 1 views
1

トレースメッセージの行番号を表示したいとします。コンパイル時の行番号のPostsharp

例トレース:SomeMethodUsingPostSharpOnEntry(行:74):何かをやりました。

私はstackframe/trace(ランタイムリフレクションソリューション&はpdbを配布するかどうか分かりません)を使用することはできません。

すでにMicrosoftのオプション(http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/6a7b021c-ec81-47c5-8f6a-2e280d548f3f)とpdbベースのソリューション(How can I include line numbers in a stack trace without a pdb?)があります。

ポストシャープなどを使ってLINEマクロを取得/作成する方法はありますか?

答えて

2

それを行うためのPostSharpの隠しオプションがあります。まず、Message.Writeの適切なオーバーロードを使用してエラーメッセージを出力する必要があります。インスタンス(または別のMessageLocation)のMethodInfoを受け入れます。

次に、Visual Studioのオプション/ PostSharp/Experimentalでexperimentalオプションを有効にする必要があります。

最後に、Visual Studioを再起動します。

これは、引数として渡すMethodInfoの場所をPostSharpで解決する必要があります。この機能はVisual Studioに依存しており、速度が遅い可能性があります。これが実験的な理由です。