【发布时间】:2010-06-30 09:32:03
【问题描述】:
我有一个问题似乎与http://markmail.org/message/6rlrzkgyx3pspmnf 中描述的问题非常相似,即如果您使用不同的服务类型访问单例,它实际上会创建多个实例。
我正在使用最新版本的 Ninject 2 for Compact Framework,而我遇到的确切问题是,如果我将相同的提供程序方法绑定到:
Func<Service> serviceCreator = () => new Service(false);
kernel.Bind<IService>().ToMethod(serviceCreator).InSingletonScope();
kernel.Bind<Service>().ToMethod(serviceCreator).InSingletonScope();
如果我同时解析为 IService 和 Service,它似乎正在创建 2 个 Service 实例。
这会导致解析Service时出现循环依赖异常。
这是设计使然,还是错误?
【问题讨论】:
-
顺便说一句,我相信在 Ninject 的 2.3 和 2.4 版本中清理了一些不一致的地方,以确保您以这种方式重用的东西只会被激活和/或清理一次
-
查看 V3 特定的答案:stackoverflow.com/questions/10206049/…
标签: .net inversion-of-control ninject ninject-2