1

我已经(很高兴地)在一些基本场景中使用 Ninject 一段时间,并希望让它控制我的日志记录。我注意到 Ninject.Extensions.Logging 命名空间的存在,并想使用它,但我遇到了两个问题:

  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 回答