Комментарии 13
Список литературы к заметке составить забыли. А туда стоило бы включить хотя бы ту же Dependency Injection in .NET, где вся теория неплохо расписана.
0
Не холивара ради. А почему Unity? Почему не Autofac например у которого есть интеграция с MVC из коробки и который отлично может тебе сказать что тип зарегистрирован или нет.
0
Так сложилось, что какое-то время я много работал с patterns & practices: Prism, где, по умолчанию, используется UnityContainer, или MEF. Так как у всех популярных контейнеров в настоящий момент примерно равные возможности, то я решил работать с тем, что более знакомо.
0
Ну мой совет что в этом конкретном сетапе лучше использовать Autofac. Количество кода уменьшится а качество увеличится. Кстати я тоже работал с Prism как раз используя Autofac — получалось в разы приятнее чем с Uniti. Кстати посмотрел сейчас — Autofac отлично интегрируется и с WebAPI и с SIgnalR. Плюс имеет еще класные фишки типа ленивого резолва и автоматического dispose всего что создается вместе с реквестом.
0
Да, Autofac выглядит очень привлекательно в связке с ASP.NET. Нужно будет попробовать его в ближайшем времени. Unity, кстати, поддерживает ленивую инициализацию через класс
InjectionFactory
, а также ленивый resolve через Resolve<Func<T>>()
.0
Ну Resolve<Func>() это резолв фабрики (не спортивно и немного криво), Autofac умеет резолвить Lazy что намного более наглядно и автоматом решает проблемы с ReadOnly и двойным резолвом. В принципе Unity умеет так или иначе практически все что умеет Autofac. Эта зараза (Autofac) подкупает тем что он очень explicit (все делается очень явно, никакой магии) и количеством фишек которые идут в комплекте.
0
Unity гораздо роднее для ASP.NET MVC, т.к его делают ребята, можно сказать, из «соседнего отдела».
Его же MS и продвигает, поэтому и привыкли все.
Его же MS и продвигает, поэтому и привыкли все.
0
Поставьте рядом с термином «Отражение» оригинальное название, мне несколько секунд пришлось вспоминать что за мирроринг такой.
0
Чего только люди не придумают чтобы Autofac не использовать :)
0
Вызов Dispose для зависимостей является плохой практикой при использовании DI. Как и включение IDisposable в интерфейс класса. Временем жизни и уничтожением объектов должен управлять контейнер. Он сам вызовет Dispose у объекта, когда это необходимо.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
ASP.NET MVC, WebApi, SignalR и UnityContainer