Должен ли IDependencyResolver.GetServices с использованием Unity возвращать регистрацию по умолчанию (без имени) - PullRequest
4 голосов
/ 23 февраля 2011

У меня есть вопрос о реализации MVe IDependencyResolver.GetServices при использовании Unity для внедрения зависимостей.

Существует несколько примеров реализации, большинство из которых были реализованы для решения проблемы исключения исключений Unity при попытке разрешения незарегистрированных типов.

Обычно GetServices реализован так:

IEnumerable<object> IDependencyResolver.GetServices(Type serviceType)
{
    try
    {
        return _container.ResolveAll(serviceType);
    }
    catch
    {
        return new List<object>();
    }
}

Что меня беспокоит, и я не смог найти ни одного подтверждения, так это то, что ResolveAll не возвращает регистрацию по умолчанию (без имени). Смотри здесь .

Документация для IDependencyResolver не делает того же заявления.

Кто-нибудь знает, должен ли IDependencyResolver.GetServices возвращать все зарегистрированные экземпляры или только именованные экземпляры (используя язык Unity)?

1 Ответ

0 голосов
/ 20 августа 2014

Попробуйте код ниже. Я надеюсь, что это сработает.

return (serviceType.IsClass && !serviceType.IsAbstract) ||        _container.IsRegistered(serviceType) ? _container.ResolveAll(serviceType) : new object[] {};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...