Как использовать строго типизированные объекты удаленных служб во Flex с Mate Framework?

Я относительно новичок в фреймворке Mate, но пока мне действительно нравится то, что я вижу. Мое приложение часто использует тег <RemoteObjectInvoker> для вызова моих методов службы BlazeDS / Java на сервере.

Однако меня беспокоит то, что я должен вводить строковое имя сотен удаленных методов в мою EventMap, потому что ошибки не обнаруживаются до времени выполнения. Меня также беспокоит, что проблемы со структурой аргументов не обнаруживаются, пока запрос не попадет на сервер. Более того, все это усложняет (не делает невозможным) создание ложного уровня служб данных.

Чтобы решить эти проблемы, я создал интерфейс ActionScript3 для каждого пункта назначения удаленной службы, у которого есть методы. Эти методы охватывают вызовы getOperation и send. Каждый метод возвращает токен Async, как и вызов send.

Однако я изо всех сил пытаюсь вызвать эти строго типизированные методы службы из моей карты событий. Я ищу:

1) RemoteObjectInvoker, чтобы атрибут метода принимал функцию / метод ActionScript вместо строкового имени удаленного метода. А затем вызвать этот метод для получения асинхронного токена, а не использовать имя String в getOperation.

2) Запрет №1 - есть ли какой-то тег, такой как MethodInvoker, но который может обрабатывать токены Async и обработчики результатов / сбоев?

3) Запрет №2 - я думаю, мне нужно создать расширение Mate. Возможно, новый тег под названием «AsyncMethodInvoker».

Есть идеи, как лучше всего действовать? Я брошу Мате, если придется, но я очень хочу его оставить!


person HDave    schedule 22.10.2010    source источник


Ответы (1)


Нашел его в доступном, но недокументированном классе в API. Он называется вызывающим делегатом, и его можно найти здесь:

http://mate.asfusion.com/api_docs/com/asfusion/mate/actions/builders/DelegateInvoker.html

Также уже существует тег под названием AyncMethodInvoker, но DelegateInvoker кажется более подходящим для вызовов удаленных служб.

person HDave    schedule 23.10.2010