我使用NinjectModule
中的以下绑定初始化Ninject:
Bind<MainWindow>()
.ToSelf()
.InSingletonScope();
然后当我从内核查询MainWindow
时,我在第一次调用后得到一个不同的实例,但在后续调用中获得相同的实例。
var win1 = Container.Get<MainWindow>();
var win2 = Container.Get<MainWindow>();
var win3 = Container.Get<MainWindow>();
Log.Debug("is it same? => " + (win1 == win2)+" "+(win2 == win3));
结果:
is it same? => False True
为什么会这样?
我在绑定中也有MainWindow
的依赖关系(如果它起作用):
Bind<IDialogService>()
.To<DialogService>()
.InSingletonScope()
.WithConstructorArgument("parent", ctx => ctx.Kernel.Get<MainWindow>());
另外:MainWindow
具有注入DialogService
的属性。