调用Bind后ninject单例缓存重置

时间:2018-08-17 15:39:33

标签: c# ninject

我正在开发一个基于插件的系统,在该系统中,需要解决各种对象后,才能在运行时更新Ninject内核。似乎通过更新内核,它会忘记/重置/清除单例列表。我将问题简化为一个简单的测试案例,如下所示。我正在使用Nuget软件包Ninject 4.0.0-beta-0134。我做错什么了吗?

非常感谢

[TestMethod]
public void SingletonInitialization()
{
    IKernel kernel = new StandardKernel();
    kernel.Bind<B>().ToSelf().InSingletonScope();


    var b = kernel.Get<B>();

    var b2 = kernel.Get<B>();

    Assert.AreSame(b, b2);

    kernel.Bind<IA>().To<A>();

    var b3 = kernel.Get<B>();
    Assert.AreSame(b, b3); //this line fails

}
interface IA
{

}

class A : IA
{

}

class B
{

}

0 个答案:

没有答案