2

これが可能かどうかを確認しようとしています。ファクトリ クラスを介してキャッスル ウィンザーから 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>() を試してみましたが、うまくいきました。問題があるのは、工場経由でやりたいときだけです。これは可能ですか、つまり何かが足りないのでしょうか、それとも不可能ですか?

(示されているコードは非常に単純であることはわかっています。工場コードを完全に実装する前に、可能かどうかをテストしているだけです)

4

1 に答える 1