замок виндзор авто регистрация от двух разных сборок? - PullRequest
1 голос
/ 13 января 2010
    container.Register(
        AllTypes.Pick().FromAssembly(typeof (UserRepository).Assembly)
            .WithService.FirstInterface());

В настоящее время приведенный выше код будет работать нормально, если интерфейс также находится в той же сборке, но он взорвется, если IUserRepository из другой сборки.

Возможна ли автоматическая регистрация из двух разных сборок? Я что-то здесь упускаю?

1 Ответ

4 голосов
/ 13 января 2010

Да, можно определить авторегистрацию, когда интерфейс определен в другой сборке. Мы делаем это, хотя мы используем немного другой синтаксис:

container.Register(AllTypes
    .FromAssemblyContaining<ConfigurationService>()
    .Where(t => t.Name.EndsWith("Service", StringComparison.Ordinal))
    .WithService
    .FirstInterface()
    .Configure(reg => reg.LifeStyle.PerWebRequest));

Я не могу сказать, имеет ли значение другое использование API, но я бы предположил, что это не так. Скорее, я предполагаю, что причиной возникшей ошибки является то, что, возможно, сборка, содержащая интерфейс, недоступна.

Проверьте, может ли Fusion загрузить тип из этого приложения.

...