Соедините StructureMap с общими аргументами открытого типа - PullRequest
0 голосов
/ 22 июля 2010

Как бы я связал StructureMap со следующим:

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

У меня есть много конкретных реализаций Repository, и мне нужен StructureMap для их автоматического подключения.

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

и т.д.

Я пробовал:

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

но я только что получил код исключения StructureMap: 25 (без объяснения причин).

Это вообще возможно?

Большое спасибо Джереми

1 Ответ

1 голос
/ 25 августа 2010

Я думаю, что есть встроенная поддержка для этого:

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