1
WFF 클라이언트 채널을 autofac에 등록하고 싶습니다. 그래서 서비스 계약 인터페이스를 생성자에 포함 시키면됩니다. 같은 : autofac으로 WCF 클라이언트 채널 등록하기
public LoginFormController(ILoginService loginService)
{ ...
나는 하나의 공공 일반적인 방법으로 저를위한 채널을 만드는 공장, 한 : '내가 할 수있는
Builder.RegisterType<ClientChannelManager>().As<IClientChannelManager>();
: 내 공장을
public T GetChannel<T>()
등록 내 클라이언트 채널을 등록 할 구문이 있는지 확인하십시오. 이 작품,하지만 내가 원하지 않는 것을 :
가Builder.Register(c => new ClientChannelManager(new SettingsProvider()).GetChannel<ILoginService>()).As<ILoginService>();
대신 ClientChannelManager와 생성자 인자의 새로운 인스턴스를 생성, 나는 싶지는 컨테이너에서 해결.
내가 명시 적으로 컨테이너에서 인스턴스를 해결 내 공장에서 정적 GETCHANNEL 방법입니다 때우기 최고 : 정적 메서드 호출과의 서비스 계약을
public static T ResolveChannel<T>(IComponentContext context)
{
IClientChannelManager manager = context.Resolve<IClientChannelManager>();
return manager.GetChannel<T>();
}
그리고 등록 :
Builder.Register(c => ClientChannelManager.ResolveChannel<ILoginService>(c)).As<ILoginService>();
누구나보다 세련된 구문/솔루션을 알고 계실 것입니다.