В большинстве командных интерфейсов, которые я видел, обычно есть метод «Выполнить», который принимает ввод команды и возвращает либо void, либо некоторую общую структуру, указывающую, была ли команда выполнена успешно или нет (мы используем последнюю). Теперь я никогда не думал об этом раньше, но у нас внезапно возникла необходимость узнать больше подробностей о результате выполнения команды, чем то, что вы можете предоставить в общем.
Рассмотрим следующий пример:
у вас есть команда, и вы создаете экран, на котором вы можете добавлять участников в свою команду. Члены команды показаны в сетке под материалом «Добавить нового участника». Теперь, когда вы нажимаете «добавить нового участника», вы хотите запустить какой-нибудь jquery / roundohuse / что угодно и добавить нового участника в список членов команды. Пока проблем нет, но вы также хотите включить некоторые идентификационные данные в скрытое поле для каждого участника, и эти id-данные поступают с сервера.
Итак, проблема в том, как мне получить эти id-данные с сервера? Команда «AddNewTeamMember», которую я проталкиваю через метод «ExecuteCommand», не дает мне ничего полезного, и если я добавлю новый метод запроса в службу, говорящий что-то вроде: «GetLastAddedTeamMember», то я могу просто получить последнюю запись добавлены кем-то другим (по крайней мере, если это данные, которые очень агрессивно добавляются разными пользователями). В некоторых ситуациях у вас есть естественный уникальный идентификатор, сгенерированный на стороне клиента, который мы можем использовать, но для членов команды мы этого не сделали.