开发者

Castle Windsor Component registration of multiple interface on a single service

i am trying to implement multiple Service Contracts via a single WCF.

i am trying to run this code:

  return new WindsorContainer()
            .AddFacility<WcfFacility>()
            .Register(
                Component.For<IServiceBehavior>().Instance(metadata),
                Component.For<IServiceBehavior>().Instance(debug),
                Component
                    .For<IBlogService>()
                    .ImplementedBy<DefaultBlogService>()
                    .Named("blogService")
                    .LifeStyle.Transient
                    .ActAs(new DefaultServiceModel().Hosted()
                        .AddEndpoints(
                            WcfEndpoint.BoundTo(new BasicHttpBinding()))),
                Component
                    .For<IBlogServiceAlternate>()
     开发者_如何学运维               .ImplementedBy<AlternateBlogService>()
                    .Named("blogService")
                    .LifeStyle.Transient
                    .ActAs(new DefaultServiceModel().Hosted()
                        .AddEndpoints(
                            WcfEndpoint.BoundTo(new BasicHttpBinding()))),


                Component
                    .For<ILogger>()
                    .ImplementedBy<DefaultLogger>()
                    .LifeStyle.Transient
            );

but it tells me that the "blogservice" is already registered. i am loading 2 differant Interfaces which are implemented via differant classes. and i got stuck in this point.


Just write

Component.For<IFirst,ISecond>(). /*whatever else you need*/


You are in fact registering IBlogService and IBlogServiceAlternate with the same Name(d) - blogService, therefore the error.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜