5

私は AOP と Postsharp について知っていますが、ここでの制約は Postsharp を使用できず、ログに属性を使用するとパフォーマンスのオーバーヘッドが発生することです。

しかし、ここでも、すべてのメソッドにログ コードを配置する必要があり、多くのコピー ペーストが必要であり、メソッドの一部ではありません。したがって、私の関数は複数の作業を行っています。ビジネス ロジックとログを一緒にするのは見栄えがよくありません。

とにかく、クラスをオープンエンドにして、クラスまたは関数の外側からログを追加することができます。または、従来のロギング方法を使用する必要があります。

さらに情報が必要な場合はお知らせください。ロギングの良い/別の方法の提案も歓迎します。

4

3 に答える 3

1

エンタープライズ ライブラリとユニティ。コンポジションを使用して、ログを記録してから他のクラスにパススルーする他のクラスの周りにロギング デコレータを作成できます。

msdn.microsoft.com/en-us/magazine/gg490353.aspxをご覧ください

于 2013-03-24T15:03:51.310 に答える
1

こんにちは、Peter Ritchie が語ったように、http://msdn.microsoft.com/en-us/magazine/gg490353.aspxは優れたソリューションです。http://www.microsoft.com/en-us/download/details.aspx?id=17866または Ninject のような他の DI フレームワークを見ることもできます。これは MVC プロジェクトに適しています。いずれにせよ、これは DI パフォーマンスhttp://www.palmmedia.de/Blog/2011/8/30/ioc-container-benchmark-performance-comparisonに関する優れた記事です。

于 2013-03-24T10:02:45.040 に答える
0

クラスのデコレーターを作成できます。http://en.wikipedia.org/wiki/Decorator_patternをご覧ください。

于 2013-03-24T20:28:45.657 に答える