Можно ли вызвать метод службы в другом методе службы? (ФОС) - PullRequest
0 голосов
/ 10 марта 2010

Пример кода:

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

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

Как классы, так и методы доступны через WCF.

Ответы [ 2 ]

3 голосов
/ 10 марта 2010

Это должно работать нормально, так как внутри Service2 вы вызываете Service1 в процессе, а не выходите за пределы WCF (даже если вы используете WCF внутри Service2, это все равно должно работать).

Но с точки зрения дизайна это не очень хорошо. Сервисные операции должны вызываться через сервис (например, через HTTP или TCP). Если и Service1, и Service2 оба нуждаются в доступе к общей функциональности, решение состоит в том, чтобы преобразовать общий код в общий класс или что-то еще, а не просто поместить его в Service1.

2 голосов
/ 10 марта 2010

Это нормально? Да, это будет работать. Как правило, я бы предпочел создать экземпляр объекта и вызвать метод, стоящий за службой. Все зависит от того, как настроена среда. Если существуют дополнительные шаги, вызывающие службу, такие как регистрация запроса и т. Д., И вы хотите отслеживать это, то непременно вызовите службу.

...