Are these two equivalent?
1) var store = new DocumentStore();
For<IDocumentStore>().Use(store);
2) var store = new DocumentStore();
For<IDocumentStore>().Singleton().Use(store);
or
For< IDocumentStore>().AlwaysUnique().Use(store);
Will both of these return singleton instance of documentstore with no duplicate instances?
AlwaysUnique() does the opposite and always creates a unique(new) instance, kind of opposite to singelton. See this stackoverflow post to see how to share singeltons between two interfaces.
Singelton() creates the singelton. It is a Singelton for this container for this interface, in your example IDocumentStore. (edit): it is actually a singelton for transiently created objects for this container. Please google that term together with structure map . Generally these are the objects that are created automatically and injected into classes, but I have not seen an exact definition of this.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With