Клиент прокрутки WCF - PullRequest
       21

Клиент прокрутки WCF

0 голосов
/ 29 апреля 2011

У меня есть много веб-методов в моих проектах, которые используются в клиентском приложении. ]

Я не хочу писать код примерно так:

 using(ServiceClient sc = new ServiceClient())
    {
         //Invoke service methods        
         sc.Method1();
    }

Вместо этого я хочу написать: ServiceClient.Method1();, в этом случае все обычные операции, связанные с инициализацией прокси, методом вызова, удалением, обработкой исключений, будут внутри ServiceClient. Конечно, я могу обернуть любой мой веб-метод похожим кодом или использовать отражение для извлечения метода по имени, но, может быть, существуют другие способы?

Ответы [ 2 ]

1 голос
/ 29 апреля 2011

Я предполагаю, что вы используете Add Service Reference для генерации ServiceClient ...

Прежде всего, небезопасно оборачивать ServiceClient (который происходит от ClientBase) в блоке using. Вот поток стекового потока , который углубляется.

Во-вторых, вы можете инкапсулировать сгенерированный ServiceClient и создавать статические методы, которые делают то, что вы описываете, но это очень много ручного кодирования для очень небольшой выгоды.Вместо этого я бы посоветовал вам инкапсулировать создание прокси, вызов, обработку ошибок, закрытие и удаление в общий класс. Это хороший пример .

0 голосов
/ 29 апреля 2011

Вы можете сделать ваш "Method1" статическим членом ServiceClient и затем вызвать ServiceClient.Method1();

...