Регистрация сборки также является регистрацией перечислений.

Я использую DRYIOC для DI в своем приложении. У меня есть интерфейсы в моем приложении MVC, которые я хочу зарегистрировать в dryIOC. Поэтому я использую RegisterMany, как показано ниже.

container.RegisterMany(new[] { Assembly.Load(DIAssemblyCollection["WebAssembly"]) }, 
    serviceTypeCondition: type => type.IsInterface, 
    setup: Setup.With(allowDisposableTransient: true));

Но я получаю ошибку, как показано ниже

Не указано, как выбрать один конструктор для типа реализации Web.Enums.Enum1 с 0 общедоступными конструкторами.


person Nayana Setty    schedule 16.08.2016    source источник


Ответы (1)


Похоже на ошибку, но сначала нужно посмотреть код.

Между тем вы можете просто фильтровать типы реализации, оставляя только классы:

container.RegisterMany(
    Assembly.Load(DIAssemblyCollection["WebAssembly"])
        .GetLoadedTypes()
        .Where(type => type.IsClass), 
    serviceTypeCondition: type => type.IsInterface, 
    setup: Setup.With(allowDisposableTransient: true));

Живой пример

Обновлять

Исправлено в DryIoc 2.7.

person dadhi    schedule 16.08.2016