2011-07-21 18 views
3

これら2つは同等ですか?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); 

これらの両方が無重複するインスタンスとのDocumentStoreのシングルトンインスタンスを返すのだろうか?

答えて

3

型の代わりにインスタンスを指定すると、常にシングルトンの動作が得られます。

5

AlwaysUnique()は反対であり、常にシングルトンとは反対の一意の(新しい)インスタンスを作成します。 2つのインターフェイス間でシングルトンを共有する方法については、this stackoverflow postを参照してください。

Singelton()シングルトンを作成します。あなたの例のIDocumentStoreに、このインタフェース用のこのコンテナ用のSingeltonです。 (編集):実際には、このコンテナの一時的に作成されたオブジェクトのシングルトンです。その言葉を構造マップと一緒にGoogleに入力してください。一般的にこれらは自動的に作成され、クラスに注入されるオブジェクトですが、これについての正確な定義は見ていません。

関連する問題