【发布时间】:2018-07-18 07:20:49
【问题描述】:
使用 NInject 很容易通过接口建立依赖注入。
例如说我有一个像
这样的课程public class WindowManagerService : IWindowManager
{
public WindowManagerService(ILogger logger) { }
}
这样做很容易:
public class NinjectModuleLoader : NinjectModule
{
public override void Load()
{
this.Bind<IWindowManager>().To<WindowManagerService>().InSingletonScope();
}
}
并成功配置依赖注入。
但是我遇到的问题是当我需要向构造函数中提供一个类的具体实例时,例如以下示例:
public class ObservableLogger : ILogger
{
public ObservableLogger(Dispatcher dispatcher) { }
}
在上面的示例中,我需要能够传入调度程序的具体实现,因为我无法使用 DI 建立此链接,并且必须引用应用程序范围内的 Dispatcher 实例。
基本上我希望能够做的是这样的事情:
this.Bind<ILogger>().To(new ObservableLogger(Dispatcher)).InSingletonScope();
那么如何为 NInject 依赖管理器提供依赖的具体实现呢?
【问题讨论】:
标签: c# wpf dependency-injection ninject ninject-extensions