これが可能かどうかを確認しようとしています。ファクトリ クラスを介してキャッスル ウィンザーから WCF サービス クラスを解決したいと考えています。WCF サービスは IIS でホストされており、これまでのところ、ファクトリを使用しているときにサービスを呼び出そうとすると、404 しか返されませんでした。ここに私の登録コードがあります:
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>() を試してみましたが、うまくいきました。問題があるのは、工場経由でやりたいときだけです。これは可能ですか、つまり何かが足りないのでしょうか、それとも不可能ですか?
(示されているコードは非常に単純であることはわかっています。工場コードを完全に実装する前に、可能かどうかをテストしているだけです)