Я бы предпочел звонить между классами обслуживания, потому что вам может потребоваться также некоторая бизнес-логика из другого сервиса.Но будьте осторожны, чтобы избежать циклических зависимостей.Я рекомендую вам использовать внедрение зависимостей, которое поможет вам избежать возможных циклических зависимостей.Также рассмотрите возможность создания интерфейсов для ваших классов обслуживания и использования этого интерфейса из ваших клиентских классов (передайте конкретную реализацию конструктору).
Тогда ваш SericesA будет выглядеть так:
class ServiceA : IServiceA
{
public ResultA Method1() { //some logic };
public void Method2() { //some logic };
}
ServiceB, которыйзависит от ServcieA.
class ServiceB: IServiceB
{
private IServiceA _serviceA;
public ServiceB(IServiceA serviceA)
{
_serviceA = serviceA;
}
public ResultB Method()
{
var result = _serviceA.Method1();
// get result from service A and create and return result for service B
}
}