2009-09-24 10 views
1

J'essaye d'obtenir un site MVC avec NHibernate configuré pour l'injection de dépendances en utilisant StructureMap. Ceci est une ligne de mon StructureMap Registre:StructureMap recherchant une instance System.Type

 ForRequestedType<NHibernate.ISession>().CacheBy(StructureMap.Attributes.InstanceScope.HttpContext) 
      .TheDefault.Is.ConstructedBy(
      context => context.GetInstance<IDatabaseScope>().OpenSession()); 

autrement dit (ou ce que je veux être le cas), l'IDatabaseScope d'interface a une OpenSession méthode qui renverra une session à utiliser pour cette HttpRequest. Ce que j'obtiens est un code d'exception StructureMap 202, aucune instance par défaut définie pour PluginFamily System.Type.

Maintenant, je comprends l'exception "Aucune instance par défaut", et j'ai travaillé sur plusieurs d'entre eux. Mais pourquoi cherche-t-il une instance par défaut pour System.Type? (c'est-à-dire qu'il ne manque pas de chercher une instance de ISession, ou IDatabaseScope, ou n'importe quoi d'autre dans la chaîne. Il essaye de créer une instance de System.Type). Pourquoi? Votre implémentation concrète d'IDatabaseScope a-t-elle des dépendances de constructeurs?

Répondre

3

Ce style de question est probablement mieux adapté à la structuremap users mailing list, car il est très probable que votre implémentation soit spécifique.

Questions connexes