2009-10-21 6 views
3

Je n'arrive pas à comprendre comment définir un objet comme un singleton ET à définir deux arguments pour le constructeur.Avec StructureMap est-il possible de créer un objet Singleton ET fournir des arguments constructeur?

Je peux faire l'une ou l'autre ... mais pas en même temps.

Par exemple. (cela ne fonctionne pas) ...

ForRequestedType<IFoo>() 
    .TheDefaultIsConcreteType<Foo>() 
    .CacheBy(InstanceScope.Singleton) 
    .WithCtorArg("alpha").EqualToAppSetting("Alpha") 
    .WithCtorArg("beta").EqualToAppSetting("Beta"); 

Suggestions?

Répondre

2

Vous êtes très proche. L'astuce est que vous devez utiliser la langue DSL par défaut alternatif TheDefault.Is.OfConcreteType

ForRequestedType<IFoo>() 
    .CacheBy(InstanceScope.Singleton) 
    .TheDefault.Is.OfConcreteType<Foo>() 
    .WithCtorArg("alpha").EqualToAppSetting("alpha") 
    .WithCtorArg("beta").EqualToAppSetting("beta"); 
+3

Vous ne savez peut-être comment faire en utilisant la nouvelle syntaxe de .Utilisation <>. Pour <> serait toi? Il semble que la syntaxe ci-dessus soit maintenant détruite. –

Questions connexes