【问题标题】:Is it ok to call a service method in an other service method ? (WCF)可以在其他服务方法中调用服务方法吗? (WCF)
【发布时间】:2010-03-10 14:26:13
【问题描述】:
示例代码:
public class Service1
{
public int Service1()
{
....
}
}
public class Service2
{
public int Service2()
{
...
var service1 = new Service1();
var count = service1.Service1();
...
}
}
类和方法都通过 WCF 公开。
【问题讨论】:
标签:
c#
.net
wcf
application-design
【解决方案1】:
这应该可以正常工作,因为在 Service2 内部,您在进程内调用 Service1 而不是通过 WCF 出去(即使您在 Service2 内部使用 WCF,它仍然可以工作)。
但就设计而言,这不是很好。服务操作应该通过服务调用(例如通过 HTTP 或 TCP)。如果 Service1 和 Service2 都需要访问通用功能,解决方案是将通用代码重构为共享类或其他东西,而不仅仅是在 Service1 中。
【解决方案2】:
没事吧?是的,它会起作用的。一般来说,我宁愿实例化对象并调用服务背后的方法。不过,这一切都取决于环境的设置方式。如果有其他步骤调用服务句柄,例如记录请求等,并且您想跟踪它,那么请务必调用该服务。