Ninject实例化单例两次

时间:2016-04-07 17:25:57

标签: c# wpf ninject

我使用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的属性。

0 个答案:

没有答案