StructureMap单身人士

时间:2011-07-21 21:37:47

标签: ioc-container structuremap

这两个是等价的吗?

1)var store = new DocumentStore();

        For<IDocumentStore>().Use(store);

2)var store = new DocumentStore();

        For<IDocumentStore>().Singleton().Use(store);

        For< IDocumentStore>().AlwaysUnique().Use(store);

这两个都会返回没有重复实例的文档库的单例实例吗?

2 个答案:

答案 0 :(得分:5)

AlwaysUnique()执行相反的操作并始终创建一个与singelton相反的唯一(新)实例。 请参阅this stackoverflow post 以了解如何在两个接口之间共享singeltons。

Singelton()创造了singelton。在您的示例IDocumentStore中,此接口的此容器是Singelton。 (编辑):它实际上是这个容器的瞬时创建对象的singelton。请将该术语与结构图一起google。通常这些是自动创建并注入类的对象,但我还没有看到对此的确切定义。

答案 1 :(得分:3)

当您提供实例而不仅仅是类型时,您将始终获得单身行为。