2008-09-27 8 views
2

Je suis en train de configurer StructureMap et il semble que tout ce que je veux faire, il y a deux façons de le faire et je ne sais pas quelle est la différence entre eux. Par exemple, quelle est la différence entre ces deux lignes:Quelle est la différence entre AddConcreteType et TheDefaultIsConcreteType dans StructureMap?

StructureMapConfiguration.ForRequestedType<IConsumer>().AddConcreteType<Consumer>(); 

StructureMapConfiguration.ForRequestedType<IConsumer>().TheDefaultIsConcreteType<Consumer>(); 

De même, quelle est la différence entre l'utilisation et AddInstanceOf ForRequestedType?

+0

Je n'ai pas un score suffisamment élevé pour retester les questions, mais j'ajouterais un tag pour quelle langue. Je suppose le framework .NET. – Powerlord

+0

En outre, mentionner que cela vient du projet Tarantino serait également une bonne idée. – Powerlord

Répondre

3
StructureMapConfiguration.ForRequestedType<IConsumer>().AddConcreteType<Consumer>(); 

Cette méthode ajoutera le type de consommateur en tant que type branché pour IConsumer. S'il n'y a pas d'autres types branchés pour IConsumer, alors ce type sera le type par défaut retourné une instance de IConsumer est demandée. Sinon, vous devrez obtenir cette instance en utilisant la clé concrète (qui est le nom qualifié de l'assembly du type par défaut).

StructureMapConfiguration.ForRequestedType<IConsumer>().TheDefaultIsConcreteType<Consumer>(); 

Cela fonctionne de manière similaire à AddConcreteType, sauf qu'il fait également du type le type par défaut. Si une requête pour IConsumer ne spécifie pas de clé concrète, c'est le type qui sera retourné. En ce qui concerne la différence entre AddInstanceOf et ForRequestedType, AddInstance of vous permet de fournir un délégué qui gérera la création d'une instance du type spécifié. ForRequestedType vous donne une instance de CreatePluginFamilyExpression (ou une GenericFamilyExpression dans le cas de ForRequestedType (Type t)) qui vous permet de configurer une instance de manière fluide.

Questions connexes