Можно ли зарегистрировать новый класс в другой класс в Visual Studio 2010? - PullRequest
0 голосов
/ 28 февраля 2011

Возможно ли это в Visual studio 2010? ... У меня есть класс реестра структуры карты:

public class RepositoryRegisters: IRegistry
{
    public RepositoryRegisters()
    {
         For<IUserRepository>().Use<UserRepository>();
         For<IGroupRepository>().Use<GroupRepository>();
    }
}

Теперь, если я добавлю новый класс, который реализует IRepository<T>

Я хочу, чтобы он автоматически добавлялся в конструктор вышеуказанного класса (RepositoryRegisters). Так что, если я добавлю, т.е. Класс MyRepository, визуальная студия автоматически добавляет эту строку в конструктор RepositoryRegisters:

For<IMyRepository>().Use<MyRepository>();

Возможно ли это?

Ответы [ 2 ]

1 голос
/ 28 февраля 2011

Если вы используете сканирование с DefaultConvention , вам не нужно ничего добавлять в реестр, если вы соблюдаете то же соглашение об именах.

  Scan(scanner =>
    {
      scanner.AssemblyContainingType<IRepository<>>();
      scanner.WithDefaultConventions();
    });

Это соединитвсе реализации интерфейса по имени (IUserRepository -> UserRepository и т. д.).

0 голосов
/ 28 февраля 2011

Да, но вам потребуется инверсия управления в конце концов.

edit: вы также можете попробовать Reflection magic.

...