Мне нравится шаблон объекта Request / Response, в котором вы инкапсулируете свои аргументы в один класс запроса [Operation], который имеет простые общедоступные свойства.
Что-то вроде AddCustomerRequest, которое будет возвращать AddCustomerResponse.
Ответ может включать информацию об успехе / неудаче операции, любые сообщения, которые могут быть использованы в пользовательском интерфейсе, например, идентификатор добавленного клиента, например.
Еще один хороший пример - сделать все это производным от простого интерфейса IMessage, где вашей общей конечной точкой является что-то вроде Process (params IMessage [] messages) ... таким образом, вы можете передавать несколько операций в одной сети запрос.