이 방법이 가능한지 확인하려고합니다. 성 클래스 윈저에서 WCF 서비스 클래스를 팩토리 클래스를 통해 해결하려고합니다. WCF 서비스는 IIS에서 호스팅되며 지금까지 팩토리를 사용할 때 서비스를 호출하려고했을 때만 404가 표시되었습니다.WCF 서비스를 사용하여 Castle Windsor를 사용하여 메서드를 사용하여
이container.AddFacility<WcfFacility>();
container.Register(Component.For<IServiceFactory>()
.ImplementedBy<ServiceFactory>()
.LifestyleSingleton());
container.Register(Component.For<IFooService>()
.UsingFactoryMethod((kernel, context)
=> kernel.Resolve<IServiceFactory>()
.CreateService(context.RequestedType))
.Named("FooService")
.LifestylePerWcfOperation());
여기 내 공장 클래스입니다 : 여기 내 등록 코드
public class ServiceFactory : IServiceFactory
{
public IFooService CreateService(Type forType)
{
IFooService createdType = null;
if (forType == typeof(IFooService))
createdType = new FooService();
return createdType;
}
}
내가 시도 해협 .ImplementedBy <FooService>()을 수행하고 잘 작동합니다. 제가 문제가있는 공장을 통해서만 그것을하고 싶을 때입니다. 이것이 가능합니까, 내가 뭔가를 놓치고 있다는 것을 의미합니까, 아니면 불가능합니까?
(I가 표시된 코드는 아주 간단합니다 알고, 난 단지 테스트입니다 경우의 수 완전히 내 공장 코드를 구현하기 전에)
구현했을 때, 내가 생각했던 것보다 * 많이 * 간단하지 않았습니다. 대략 3 개 또는 4 개의 클래스를 만들어야한다고 생각합니다. 여기에 설명 된대로 (그냥 윈저로 단일체 규칙을 대체하십시오) : http://www.i-avington.com/Posts/Post/usng-unity-with-a-wcf- service – eouw0o83hf
나는 내 자신의 ServiceHostFactory를 작성해야 할 것 같았습니다. 나는이 질문을 먼저하기로 결정했다. – Chris
그래, 나는 그 일을 할 필요가 없도록 열심히 노력했지만, 뭔가 바뀌지 않는 한 그 주위에는 어떤 방법도 보이지 않는다. 죄송합니다 : -/ – eouw0o83hf