可以在其他服务方法中调用服务方法吗? (WCF)

时间:2010-03-10 14:26:14

标签: c# .net wcf application-design

示例代码:

public class Service1
{
    public int Service1()
    {
        ....
    }
}

public class Service2
{
    public int Service2()
    {
        ...
        var service1 = new Service1();
        var count = service1.Service1();
        ...
    }
}

这两个类和方法都是通过WCF公开的。

2 个答案:

答案 0 :(得分:3)

这应该可以正常工作,因为在Service2内部你正在调用Service1而不是通过WCF(即使你在Service2中使用WCF它仍应该工作)。

但就设计而言,这并不是很好。应通过服务(例如,通过HTTP或TCP)调用服务操作。如果Service1和Service2都需要访问公共功能,那么解决方案是将公共代码重构为共享类或其他内容,而不是仅仅将其放在Service1中。

答案 1 :(得分:2)

可以吗?是的它会起作用。通常,我宁愿实例化对象并调用服务背后的方法。这一切都取决于环境的设置方式。如果有其他步骤调用服务句柄,如记录请求等,并且您想要跟踪它,那么无论如何都要调用该服务。