問題タブ [postsharp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Postsharp: どのように機能しますか?
私の別の質問に関するアドバイスに従って、そこに引用されているコードを PostSharp で使用できるように変換しました。
属性:
それでも、結果が得られません (コンソールに "Works!" が表示されます)。PostSharp 属性内のブレークポイントは、入力されていないことを示しています。
ヘルプはありますか?前もって感謝します。
visual-studio - VS2008内から単体テストを実行する場合とコマンドラインでmstestを使用する場合
最近、VS2008内で単体テストを実行する場合と、コマンドラインでmstestを使用して同じ単体テストを実行する場合にいくつかの不整合が発生しました。
私のシナリオは少し進んでいるので、おそらくいくつかのコーナーにぶつかったでしょう。同じデータソースに対して多くのデータ駆動型単体テストを実行しています。PostSharpを試すのも好きです。だから、私はPostSharpアスペクトを書きました---TestDataSourceユニットテストメソッドではなく、ユニットテストタイプに適用します。タイプが作成されると、このアスペクトはPostSharpにDataSource、タイプ内のすべての単体テストメソッドに属性をアタッチするように指示します。
Reflectorでビルドされたアセンブリを調べると、各テストメソッドが実際に正しいDataSource属性に関連付けられていることがわかります。コマンドラインでmstestを使用してテストを実行すると、期待どおりに動作します。各テストは、指定されたデータソースに対して実行されます。
ただし、VS2008でまったく同じ単体テストを実行しても、データソースを見つけることができません。これは、VS2008がビルドされたアセンブリを無視し、ソースコードを確認するかのようです。もちろん、DataSource属性はビルド中に挿入されるため、データ駆動型テストではないようです。
展開されたアイテムに問題はありません。テストに手動でアタッチするDataSourceと、VS2008でテストを正常に実行できます。
何か案は?
c# - MethodBaseはファイル名と行番号を提供しますか?
ポストシャープ用のを書き込もうとしていCompileTimeValidate(MethodBase method)ます。問題は、違反が発生すると、エラーリストに説明のみが表示されることです。「ファイル」列と「行」列は空です。
私が使用できる唯一の情報はMethodBase、属性が適用されたメソッドのインスタンスです。
オブジェクトからソースファイルと行番号の詳細を取得する方法はありMethodBaseますか?
c# - Postsharp laosの優れたチュートリアル/ドキュメントを探し、「ライブラリアン」サンプルを理解する
PostSharp / laosプラグインに関する優れた学習資料を誰かに教えてもらえますか?Postsharpに同梱されている「Librarian」サンプルが気に入りました。多くの内容をカバーしていますが、理解するのは困難です。サンプルについても説明・記事はありますか?
postsharp - Postsharp : 私の要件に適していますか
現時点では、PostSharp (www.postsharp.org) を使用して、アプリケーションの一部として独自のカスタム ロギング システム (log4net の上に配置) を作成することを検討しています。PostSharp はこれらすべての要件を満たしていると思いますか?
これは私の要件です:
メソッド、プロパティ、フィールド、クラス、およびアセンブリ レベルで機能するカスタムの「アスペクト」を記述できるようにしたいと考えています。
.NET 2.0 プロジェクトと 3.5、特に WinForms と ASP.NET (MVC を含む) および WCF プロジェクトでツールを使用できるようにしたい
クライアント マシン/展開ポイントで自分のソフトウェアとは別に別のツール (exe) を実行したくありません。
望ましい: ツールの dll を再配布する必要さえなくしたいことが望ましいです。ただし、ランタイム dll をアプリと共に再配布しないという要件は、強制的な要件になる可能性があるため、スキップしてください。
これを拡張して、主にアプリケーションのカスタム ロギング アスペクトを記述したいと考えています。
Web アプリケーションと Windows フォーム アプリを再配布します。したがって、私が使用しようとしているツールは、いかなる種類のロイヤルティの支払いやライセンス料も無料であり、特定の種類のライセンスに制限されないようにしたいと考えています. アプリケーションの商用ライセンスを販売しています。
postsharp - Postsharp と NLog、一般的な設計上の質問
これは私がやろうとしていることです:
- アスペクト指向の NLog 固有の onmethodexecutionaspect クラスを作成したいと考えています。
- しかし、アプリケーション構成ファイルで指定されている内容に応じて、メソッド実行アスペクトの NLog または TraceX などの特定の実装を内部的にロードする一般的な属性クラスを使用して、呼び出し元のコードが属性付けされていることを確認したいと考えています。
これにアプローチする最良の方法は何ですか?
Postsharp メソッドの実行の側面から派生する抽象クラスを作成することを考えています。次に、NLog固有の実装を持つ別のdllを作成します...そのため、一般的なdllで作成した一般的なメソッド実行アスペクトクラスから派生するクラスが作成されます。
消費するコードは、私が作成した一般的なクラス dll のみを参照し、アプリケーション構成で指定されている場合、そのクラスは私が作成した NLog 固有の dll をロードします。
理にかなっていますか?
c# - PostSharp を使用して例外でメソッドを再試行する
私のDALモジュールの1つには、次のような形の重複した配管がたくさんあります。
最近PostSharpを発見したので、これらの配管コードを属性に置き換えようとしています。
私の当初の計画は次のとおりでした: - OnMethodInvocationAspect を拡張し、メソッド呼び出し中にメソッド呼び出しイベント引数を記憶する - IOnExceptionAspect を実装し、OnException を実装して例外の種類をチェックし、再試行が必要な場合は、元の呼び出しからメソッド呼び出しイベント引数オブジェクトを使用します。
しかし、IOnExceptionAspect を追加すると、OnInvocation メソッドは起動されなくなりました。
ここで何をする必要があるか知っている人はいますか?それとも、私が使用すべきより適切な側面がありますか?
ありがとう、
resharper - ReSharper で PostSharp を使用した経験
ReSharper で PostSharp を使用した人はいますか? もしそうなら、どのような問題が予想されますか?
.net - Mono Cecil vs. PostSharp Core vs. AOP フレームワークを実装するための Microsoft CCI
カスタム AOP フレームワークを実装する機能、使いやすさ、ドキュメント、サンプル、コミュニティ/サポート、VS 統合、既知の実装、長期的な実行可能性、ビルド速度の点で優れているのはどれですか?
私が知っていることから始めます(これまでPostSharpを試しただけです):
- Microsoft Common Compiler Instrastruture (CCI) : FxCop、ILMerge、Spec#、およびコード コントラクトに使用されていることを読みました。ILが変更されたときに壊れるブランチコードのオフセットを修正することさえしないので、それは非常に低レベルのようです。
- PostSharpは 5 歳で、AOP のための多くの機能を備えています (たとえば、IL を使用して手動で行う必要があるいくつかのことを抽象化します)。にはドキュメントがありますが、改善される可能性があります。ビルドには約 2 倍の時間がかかります。IL を注入する方法に関するサンプルはほとんどなく、バージョン 2.0 はすぐにリリースされ、大幅な改善が約束されています。
- Mono Cecil : Mono スイートの一部であり、Mono Cecil を使用する Reflexil と呼ばれる Reflector 用のプラグインがあります。