1

私は(幸いにも)Ninjectをしばらく使用していて、いくつかの基本的なシナリオがあり、ロギングを制御できるようにしたいと思います。Ninject.Extensions.Logging名前空間の存在に気づき、それを使用したいのですが、2つの問題が発生しています。

  1. ロガーを実行しているクラスのタイプで初期化する必要があります(GetCurrentMethod()。DeclaringTypeを使用してLogManager.GetLoggerを実行したかのように)。
  2. ロガーを初期化しないためにNullReferenceExceptionsに遭遇することなく、単体テストのためにロガーを簡単にモックまたは「無効化」できるようにしたい(つまり、ロガーを機能させたくない)。

今、私はこのあたりにいくつかの質問(そして答えさえ)があることを知っています、しかし私は正しい方向に私を向けたものを見つけることができなかったようです。

私はどんな助けにも感謝します(「あなたの骨の頭」でさえここにあります!私が気づいたはずの何かにリンクしています)。

4

1 に答える 1

2
  1. これは拡張機能のデフォルトの動作です
  2. 単体テストでテスト対象のオブジェクトを作成するためにNinjectを使用しないでください。インスタンスを手動で作成し、ロガーに必要なものを渡します。

ユニットテストをご覧ください。https://github.com/ninject/ninject.extensions.logging/blob/master/src/Ninject.Extensions.Logging.Tests/Infrastructure/CommonTests.cs

于 2011-03-28T14:53:22.747 に答える