Как использовать строго типизированные объекты удаленных служб в Flex с Mate Framework?
Я относительно новичок в Mate Framework, но пока что мне действительно нравится то, что я вижу. Мое приложение широко использует <RemoteObjectInvoker>
тег для вызова моих методов службы BlazeDS/Java на серверной части.
Однако меня беспокоит то, что я должен ввести строковое имя сотен удаленных методов в мою EventMap, потому что ошибки не обнаруживаются до времени выполнения. Меня также беспокоит, что проблемы со структурой аргументов не обнаруживаются до тех пор, пока запрос не попадет на сервер. Кроме того, все это усложняет (не делает невозможным) предоставление ложного уровня обслуживания данных.
Чтобы решить эти проблемы, я создал интерфейс ActionScript3 для каждого пункта назначения удаленной службы, у которого есть методы. Эти методы заключают в себе вызовы "getOperation" и "send". Каждый метод возвращает асинхронный токен, как и вызов send.
Тем не менее, я борюсь за способ вызова этих строго типизированных методов обслуживания из моей карты событий. Я ищу:
1) RemoteObjectInvoker для присвоения атрибуту метода функции / метода ActionScript вместо строкового имени удаленного метода. А затем вызвать этот метод, чтобы получить асинхронный токен, а не использовать имя String в getOperation.
2) Запрет № 1 - есть ли какой-нибудь тег, такой как MethodInvoker, но который может обрабатывать токены Async и обработчики результата / сбоя?
3) Запрет № 2 - думаю, мне нужно создать расширение Mate. Возможно, новый тег называется "AsyncMethodInvoker".
Есть идеи относительно лучшего курса действий? Я брошу Мате, если придется, но я действительно хочу оставить это!
1 ответ
Нашел его в доступном, но недокументированном классе в API. Это называется вызывающим делегатом и может быть найдено здесь:
http://mate.asfusion.com/api_docs/com/asfusion/mate/actions/builders/DelegateInvoker.html
Также уже есть тег AyncMethodInvoker, но DelegateInvoker кажется более подходящим для вызовов удаленных сервисов.