Расширение прокси-классов веб-службы - PullRequest
0 голосов
/ 28 июля 2011

Мне нужно добавить функциональность в вызовы моих веб-сервисов, чтобы трансляция объектов и автоматические повторные попытки выполнялись и абстрагировались.

Я бы обычно переопределил базовый класс, чтобы добавить дополнительные функциональные возможности, но поскольку прокси-методы не являются чрезмерно читаемыми, я не могу сохранить имена методов одинаковыми. Единственный другой вариант, который я могу придумать, - это использовать ключевое слово «Shadows», чтобы достичь того, чего я хочу. Теперь мне не нравится идея теней, так как она не особенно ООП, но в этом случае она, кажется, делает изящное решение.

Какие еще методы используют люди для добавления функциональности в прокси-классы веб-служб без изменения сгенерированных классов?

1 Ответ

1 голос
/ 28 июля 2011

Вы можете использовать принцип Composition over Inheritance для достижения этой цели.Например, напишите обертку вокруг вашей веб-службы для получения желаемой функциональности.

Обновление: пример кода

interface IWebService
{
    void DoStuff();
}

public class MyProxyClass
{
    IWebService service;

    public void DoStuff()
    {
        //do more stuff
        service.DoStuff();
    }
}
...