0

我们有以下解决方案布局:

  • 数据访问
  • 商业逻辑
  • WCF 服务
  • MVC

我们选择有一个 WCF 服务层,因为将来会有其他应用程序使用相同的逻辑。这被认为是 SOA。

在 DA、BL 和 WCF 层之间,我倾向于使用依赖注入,因为我想对业务逻辑等进行单元测试。

但现在我的问题是:我是否也应该对 WCF 使用依赖注入?我的意思是,我应该从应用程序(消费者)通过 WCF 服务传递依赖关系吗?我个人觉得这很奇怪,因为它对我来说不再是 SOA 了?

谁能帮我吗?

4

3 回答 3

1

可能会吹毛求疵,但使用服务并不一定意味着 SOA。

既然如此,为什么需要从应用程序传递依赖项?您可以在主机上编写服务,如下所示

于 2012-06-05T11:48:56.373 回答
1

如果您想对业务逻辑进行单元测试,您甚至可以为它们声明不同的端点并在您的单元测试中使用,这是依赖注入的替代方案。如果你真的想使用依赖注入,那么总是建议在服务级别而不是在客户端上执行它,但如果你从客户端使用它仍然没有害处。如果我愿意选择,那么我会在服务类中完成它,并且从客户端我可以获得一个参数,该参数将表明您是使用它进行单元测试还是应用程序调用了您的 WCF 服务。

于 2012-06-05T11:51:26.497 回答
1

我应该通过应用程序的 WCF 服务传递依赖项吗?

我猜你的应用程序是指 WCF 服务的消费者,对吧?我相信从应用程序(MVC)你正在通过代理与服务层交谈。您不应将依赖项从使用者应用程序注入到 WCF 服务,并且您不能这样做。

但是您可以在 WCF 中使用依赖注入来注入数据/日志记录组件,以便通过创建自定义服务主机工厂在服务端本身进行更好的单元测试。

http://prideparrot.com/blog/archive/2012/2/dependency_injection_in_wcf_using_castle_windsor

于 2012-06-05T12:03:35.283 回答