在Web API项目中调用Web服务...在哪个层中调用?

时间:2013-12-31 21:11:07

标签: c# web-services .net-4.5 asp.net-web-api

我正在使用 Microsoft ASP.NET Web API 2 ,我的一个端点必须在内部调用旧的非Microsoft Web服务(不是asmxsvc )。

我应该在哪个层中调用它?

我目前有:
存储库层:现在完成对DB的所有CRUD调用。

域管理器:其中各个管理器类调用存储库层方法。

我的 Web API控制器方法会调用相应的域管理器方法。

我应该在我的存储库层中使用另一种方法来调用Web服务吗?按照上面的常规模式?

1 个答案:

答案 0 :(得分:2)

如果我们遵守SOLID原则,选择就会更清楚:

  1. 存储库层:违反SOLID中的“S”,由于Web服务端点的变化而不得不修改存储库类。

  2. 域名管理员: 可能

  3. WebAPI控制器:这对我来说最有意义。不需要过度抽象不会被重用的东西。如果Web服务来自多个WebAPI操作,那么域管理器可能更有意义。