Я пытался использовать Dependency Resolver с Unity, и у меня возникли проблемы при создании моего контроллера.
Вот пример контроллера:
public class AccountController : Controller
{
private readonly ICourseService _courseService;
public AccountController(ICourseService courseService)
{
_courseService = courseService;
}
}
Но, когда контроллер пытается создать - я получил исключение: «Для этого объекта не определен конструктор без параметров». Я даже пытаюсь добавить конструктор по умолчанию для этого контроллера, но courseService не создал. Также попробуйте добавить свойство с атрибутом [Dependency] - ничего не произошло.
Вот класс Решения зависимостей:
public class UnityDependencyResolver : IDependencyResolver
{
private readonly IUnityContainer _container;
public UnityDependencyResolver(IUnityContainer container)
{
_container = container;
}
public object GetService(Type serviceType)
{
return _container.IsRegistered(serviceType) ? _container.Resolve(serviceType) : null;
}
public IEnumerable<object> GetServices(Type serviceType)
{
return _container.IsRegistered(serviceType) ? _container.ResolveAll(serviceType) : new List<object>();
}
}
и Global.asax.cs:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
var container = new UnityContainer();
container.RegisterType<ICourseService, CourseService>();
DependencyResolver.SetResolver(new UnityDependencyResolver(container));
}
Кто-нибудь может мне помочь?