【问题标题】:How to set configuration on WCF when DI is used使用 DI 时如何在 WCF 上设置配置
【发布时间】:2011-03-18 22:30:34
【问题描述】:

我正在使用this method 在 WCF 中实现 DI。现在我需要配置端点和绑定。

我应该如何以及在哪里执行此操作?

【问题讨论】:

  • 这一切都取决于您使用的 DI 容器...有些很简单,例如拥有 Wcf 设施的 Windsor。
  • 您认为使用实例提供程序与提供端点设置的常规方式有何冲突?
  • 我查看了您提供的 SO 链接,但我不同意您选择的答案......当您可以使用 Wcf 设施时,为什么还要用石头凿出自己的轮子???下一个答案是使用 Wcf Facility……我已经使用过很多次了,效果很好。
  • @CrazyDart - 我正在研究 Unity 的解决方案,因为我想坚持使用 Microsoft 技术。 Windsor / Castle 似乎不是 MSFT 技术。然而,团结是。
  • 知道了。它确实有助于了解您使用的是什么 DI。 @flq 和 @Mark-Seemann 所说的是,您使用与没有 DI 设置的方式相同的方式进行配置......我不确定我是否完全同意,但在大多数情况下这是正确的。这取决于您使用的 WCF 模板。你有没有找过一些关于这个的博客文章?我发现一些使用谷歌...我知道那不是 MS 产品,但它似乎是可靠的。 ;-)

标签: dependency-injection wcf wcf-binding


【解决方案1】:

flq 的评论提供了答案:即使您使用 IInstanceProvider,您仍然可以使用正常的 WCF 配置设置。

由于这是配置 WCF 的惯用方式,我认为没有理由以任何其他方式进行配置。它提供了灵活性,有工具支持,而且您可以使用文档化的 API。

【讨论】:

  • 我是使用 WCF 工厂的新手,这让我对一个确切的 web.config 示例感到厌烦。一旦我对 WCF 有足够的了解,或者有勇气/耐心进行试错法,我就会制作一个示例。
【解决方案2】:

对于 REST 4 模板上的 Windsor,这是我注册路线的方式...

// SOAP Endpoint
RouteTable.Routes.Add(new ServiceRoute("myendpointname/soap",
    new WindsorServiceHostFactory<Castle.Facilities.WcfIntegration.DefaultServiceModel>(), typeof(IMyEndPointService)));

// REST Endpoint
RouteTable.Routes.Add(new ServiceRoute("myendpointname",
    new WindsorServiceHostFactory<RestServiceModel>(), typeof(IMyEndPointService)));

【讨论】:

    猜你喜欢
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 2017-02-26
    • 2015-01-18
    • 2013-04-19
    • 1970-01-01
    相关资源
    最近更新 更多