【问题标题】:WCF service instantiation via IoC container通过 IoC 容器进行 WCF 服务实例化
【发布时间】:2008-12-29 23:28:15
【问题描述】:

是否可以让 WCF 运行时通过 IoC 容器而不是通过其通常的进程来实例化服务? (另外,考虑到该类型的容器生活方式配置和服务的 InstanceContextBehavior 之间的潜在冲突,这种方法会是一个糟糕的主意吗?)

我知道我可能完全问错了问题。我的目标是通过容器提供的方法拦截工具实现 AOP 方法(例如,方法进入/退出日志记录、性能计数和调用限制,所有这些都涉及我不想插入到我的服务实现中的逻辑和依赖项)。我想 WCF 提供了其他方法来解决这个问题,所以我也很想听听其他推荐的方法。

【问题讨论】:

    标签: wcf inversion-of-control


    【解决方案1】:

    简短的回答 - 是的,可能。

    请查看 Castle WCF 集成。它让您将 Castle Windsor 用于 WCF,它为您提供了比仅注入依赖项更强大的功能。 最好使用主干版found here。关于它的文档不多,但请看一下测试。它们很容易理解,对您来说将是一个很好的示例代码。 WCF 工具可让您完全按照您的要求进行思考。

    【讨论】:

      【解决方案2】:

      是的,这里使用 ObjectBuilder 和 Spring.NET 的实现(如果您点击链接,还有更多!):

      http://www.infoq.com/news/2008/01/wcf-di

      但无法评论生活方式和实例上下文行为交互。

      对于更多特定于 WCF 的方法,利用 WCF 行为概念(如上例所示)也可能有用。有几种不同的类型,这里是一个起点:

      http://mehranikoo.net/CS/archive/2007/02/22/WCFBehaviours.aspx

      干杯,
      马特

      【讨论】:

      • 不知道 Spring 的支持有多好,但除非你有充分的理由,否则你不想使用 ObjectBuilder。其他工具的功能要强大得多。
      • 第二个链接坏了。
      猜你喜欢
      • 1970-01-01
      • 2012-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多