2017-12-21 24 views
0

생성자에서 사용되는 클래스에서 상속 한 RegisteredType으로 생성자 매개 변수를 해결하도록 Autofac에 지시 할 수있는 방법이 있습니까?Autofac RegisterType for constructor 매개 변수 유형을 상속하는 UsingConstructor

가 나는 HttpClient를위한 생성자에서 HttpClientHandler를 사용해야하지만 나뿐만 아니라 대해 getCookies에 액세스 할 수 HttpClientHandler 필요 ... 내가 HttpMessageHandler으로 핸들러를 등록하면, 그것은 HttpClient를가 제대로 만들지 만 나는 캐스팅해야 해킹처럼 느껴지는 HttpClientHandler에 HttpMessageHander; 그것을 할 수있는 더 좋은 방법이 있습니까?

builder.RegisterType<HttpClientHandler>().As<HttpMessageHandler>().SingleInstance(); 

builder.RegisterType<HttpClient>().UsingConstructor(typeof(HttpMessageHandler)).SingleInstance(); 

답변

1

전체 테스트를 작성하지는 않았지만 HttpClientHandler 등록에 AsSelf()를 삽입 할 수 있다고 생각합니다. 내가 해결하고 때

builder.RegisterType<HttpClientHandler>() 
     .As<HttpMessageHandler>() 
     .AsSelf() 
     .SingleInstance(); 

그래서, 이러한 문제없이 돌아올 : VAR 컨테이너 = builder.Build();

 var handler = container.Resolve<HttpClientHandler>(); 
     var client = container.Resolve<HttpClient>();