2012-06-17 4 views
5

Я только начинаю с Единства. Мне все еще интересно, каковы его преимущества.В чем преимущество UnityContainer.Resolve над Activator.CreateInstance?

UnityContainer().Resolve<T>() который может вернуть конкретный экземпляр типа, зарегистрированного для типового типа T.

Я думаю, что я также могу использовать Activator.CreateInstance<T>().

Activator - это встроенный класс в .NET Framework, поэтому мне интересно, какая отличительная особенность Unity есть?

+4

Прочтите любой учебник по инъекции зависимостей, и вы получите ответ ... –

+4

Кроме того, Activator.CreateInstance является * медленным * и не может сопоставлять интерфейсы с конкретными типами. Это бесполезно для инъекций зависимости –

ответ

4

MSDN утверждает их как преимущества Unity Контейнер:

    создания
  1. Упрощенный объект, особенно для иерархических структур объектов и зависимостей
  2. абстракции требований; это позволяет разработчикам определять зависимости во время выполнения или в конфигурации и упрощать управление сквозными задачами.
  3. Повышенная гибкость при отсрочке конфигурации компонентов в контейнере
  4. Возможность размещения в местоположении; это позволяет клиентам хранить или кэшировать контейнер
  5. Перехват экземпляра и типа.

Вот link.

Смежные вопросы