这两个是等价的吗?
1)var store = new DocumentStore();
For<IDocumentStore>().Use(store);
2)var store = new DocumentStore();
For<IDocumentStore>().Singleton().Use(store);
或
For< IDocumentStore>().AlwaysUnique().Use(store);
这两个都会返回没有重复实例的文档库的单例实例吗?
答案 0 :(得分:5)
AlwaysUnique()执行相反的操作并始终创建一个与singelton相反的唯一(新)实例。 请参阅this stackoverflow post 以了解如何在两个接口之间共享singeltons。
Singelton()创造了singelton。在您的示例IDocumentStore中,此接口的此容器是Singelton。 (编辑):它实际上是这个容器的瞬时创建对象的singelton。请将该术语与结构图一起google。通常这些是自动创建并注入类的对象,但我还没有看到对此的确切定义。
答案 1 :(得分:3)
当您提供实例而不仅仅是类型时,您将始终获得单身行为。