IoC 컨테이너로 Microsoft Unity를 사용하는 새로운 ASP.Net 웹 API 프로젝트를 진행 중입니다. 나는 어느 것이 맞는지 조금 혼란 스럽다.System.Web.Http.HttpConfiguration의 DependencyResolver와 System.Web.Mvc의 DependencyResolver
DependencyResolver
을 System.Web.Http.HttpConfiguration
으로 설정하면 그런 다음 종속성이있는 API 컨트롤러를 호출 할 수 있으며 종속성은 Unity 프레임 워크에 의해 해결됩니다. 그러나 HomeController
과 같은 MVC 컨트롤러의 경우 DependencyResolver
을 System.Web.Mvc
에 설정하기 전까지 Unity는 종속성을 주입 할 수 없습니다.
API 컨트롤러 종속성은 해결되었지만 MVC 컨트롤러 종속성은 아닙니다. 아래 코드를 추가하면 :
public class IocConfig
{
public static void Register(HttpConfiguration config)
{
var container = UnityConfig.GetConfiguredContainer();
FilterProviders.Providers.Remove(FilterProviders.Providers.OfType<FilterAttributeFilterProvider>().First());
FilterProviders.Providers.Add(new UnityFilterAttributeFilterProvider(container));
config.DependencyResolver = new UnityResolver(container);
//DependencyResolver.SetResolver(new UnityDependencyResolver(container));
}
}
MVC 컨트롤러 종속성이 성공적으로 해결되었지만 API 컨트롤러 종속성은 없습니다. 내가 :(아래의 코드를 추가 할 경우 라인)
DependencyResolver.SetResolver(new UnityDependencyResolver(container));
그냥 프로젝트 템플릿 ASP.Net 웹 API이며, 내가 Microsoft.Unity를 사용하고 있음을 알려을 취소합니다 언급.
DependencyResolver
을 설정해야합니까, 아니면 제가 잘못하고있는 것이 좋습니까?
에 사용
주 네임 스페이스. –