假设我有一个名为 _kernel 的 Ninject 内核,一个给定的对象(作为参数接收),比如 myClass,类型为 IMyClass:IDisposable; 我注意到当我通过 ToMethod 将 IMyClass 绑定到 myClass 时,如下所示:
Bind<IMyClass>().ToMethod(x => myClass);
然后,每当我处理 _kernel 时,myClass.Dispose()
都不会被调用。
但是,如果我改为通过 ToConstant 将 IMyClass 绑定到 myClass,如下所示:
Bind<IMyClass>().ToConstant(myClass);
thenmyClass.Dispose()
将在处理 _kernel 时调用。
你们能给我解释一下这种行为吗?