2010-07-22 4 views
0

Comment puis-je câbler StructureMap ce qui suit:Câbler StructureMap avec des arguments de type ouvert génériques

public Interface IRepository<T, TIdentity>{} 
public abstract class Repository<T, TIdentity> : IRepository<T, TIdentity>, other interfaces 

J'ai beaucoup d'implémentations concrètes de dépôt et ont besoin StructureMap de les câbler automatiquement.

public class JournalRepository : Repository<Journal,int>{} 
public class UsersRepository : Repository<Users,int>{} 
public class AccountGroupsRepository : Repository<Accounts,string>{} 

etc.

J'ai essayé:

x.ForRequestedType(typeof(IRepository<,>)) 
.TheDefaultIsConcreteType(typeof(Repository<,>)); 

mais je reçois juste StructureMap Code d'exception: 25 (sans explication).

Est-ce possible?

Un grand merci Jeremy

+0

Jeremy, ajoutez une balise de langage de programmation, je le ferais pour vous, mais je suis mauvais à deviner;) Cela augmentera la visibilité de votre question et le nombre de réponses! –

+0

Vous voulez dire C#? Je n'avais pas réalisé que c'était nécessaire –

Répondre

1

Je pense qu'il est construit à l'appui de cette utilisant:

Scan(assemblyScanner => 
      { 
       assemblyScanner.TheCallingAssembly(); 
       assemblyScanner.AddAllTypesOf(typeof (IRepository<>)); 
       assemblyScanner.ConnectImplementationsToTypesClosing(
        typeof(IRepository<>)); 
      }); 
+0

Aha. Cela a fonctionné pour moi. http://bit.ly/6MvOAw –

+0

Excellent - merci beaucoup - Je souhaite juste que je pourrais trouver la documentation pour StructureMap –

+0

Les docs sont disponibles à http://structuremap.github.com/structuremap/index.html sinon le google group est généralement le plus utile http://groups.google.com/group/structuremap-users?hl=fr – PHeiberg