2016-05-19 1 views
0

PostSharpに問題があります。「PostSharpエクスプローラには表示されないいくつかのアスペクトはありません」と省略できます。 MethodInterceptorAspectから継承されている認可の名前空間からの二つの側面がありませんOnExceptionAspectから導出された名前空間をExceptionHandlingからPostSharpエクスプローラと二つの新しい側面に提示されているスクリーンショットで見ることができるのでPostSharpアスペクトがコンパイルされて起動しない

enter image description here

以下は、マニュアルで作成された「標準」アスペクトで、別の基本クラスから派生したものを除き、動作するアスペクトとほぼ同じです。私はコードのさまざまな部分にコメントする問題を特定しようとしましたが、それは助けにはなりませんでした。

[Serializable] 
[AttributeUsage(AttributeTargets.All)] 
public class HandleExceptionAttribute : OnExceptionAspect 
{ 
    /// <summary> 
    /// Method executed <b>after</b> the body of methods to which this aspect is applied, 
    ///    in case that the method resulted with an exception (i.e., in a <c>catch</c> block). 
    /// </summary> 
    /// <param name="args">Advice arguments.</param> 
    public override void OnException(MethodExecutionArgs args) 
    { 
     // some exception handling code 
    } 
} 

また私はちょうどsampleから単純な態様を添加し、そしてそれはまた、PostSharpエクスプローラには示されていません。

質問

そこで質問です:側面をコンパイルして起動しませんなぜですか?

+1

PostSharpエクスプローラは、どのターゲットにも適用されていない側面(たとえばメソッド)を表示しません。 「側面はコンパイルされていません」とは何を意味していますか?ビルドの警告やエラーはありますか? HandleExceptionAttributeで装飾されたメソッドがあり、メソッドが例外をスローすると、OnExceptionメソッド内のブレークポイントがヒットしていないことを意味しますか? –

+0

@JakubLinhartはい、そうです。アスペクトはメソッドとクラスに適用されますが、ポストシャープエクスプローラーには表示されず、キーメソッドのブレークポイントはデバッグを中断しません。 エクスプローラに表示されていない使用方法がなく(私の場合は適用されていない)、ILコードに織り込まれていないと考えました。それは私が「コンパイルせずに」執筆したものです。 –

答えて

0

Unswering自分の質問/質問が

を更新しているPostSharpのバグまたは多分PostSharp、ReSharperのとVisual Studioの間の葛藤だそうです。

applingの後に抽象メソッドの新しい側面(以前のアスペクトはクラスレベルでapplietでした)私は 'incompatibilty'についてのビルドエラーがあります。その後、抽象メソッドを仮想化し、プロジェクトを正しくコンパイルしました。そしてResharper Explorerはの両方を表示し、両方とものすべての影響を受けています。明確にするために、私は「取り消しの変更」を行い、私の行動を繰り返すことを望んでいましたが、今度はポストシャープエクスプローラーからは全く適用されないように(すべて約300回適用されています)、ReSharperはすべての用途あなたのタイプとして。

ソリューションをクリアし、VisualStudioを再起動してソリューションを再構築した後、PostSharpエクスプローラに3つのアスペクトが表示され、PostSharpがプロジェクトにもう一度適用されて、このアスペクトが使用された後に

アスペクトを使用しないプロジェクトでPostSharp設定を確認してください。

関連質問と回答:コメントを案内するための@Jakubへ

ありがとう!

関連する問題