Pull to refresh

Comments 10

А не проще было не городить огород с классом Message, а обрабатывать вызовы BinaryFormatter-ом, как это делает Remoting в стандартной конфигурации? Тогда бы и ref/out параметры обрабатывались нормально.
Но в данном примере удобно менять тип сериализатора, например на json или xml и использовать сервер для связки с клиентами написанными на других языках.
Обрабатывать вызовы BinaryFormatter-ом было бы удобней, но ведь тогда у нас получится только синхронный сервер, а клиент должен обрабатывать и асинхронные вызовы.
Управляйте асинхронностью с помощью атрибутов. Например, если на методе атрибут есть, выполняйте его асинхронно.
Возможно вы не поняли. Нужно не на сервере выполнять метод асинхронно, а сервер должен иметь возможность в любой момент инициализировать событие у подключенного клиента.
И? Что мешает сериализовать и отправить? Создаёте фейковое сообщение возврата, а дальше делаете с сериализованным вызовом что угодно. Я просто писал уже подобную систему и искренне не понимаю ваших затруднений.
А разве сейчас мой класс Message не представляет собой «фейковое» сообщение возврата? Я право не понимаю как можно сделать иначе не создавая дополнительного потока для разбора назначения этого «фейкового» сообщения.
remotinglite.codeplex.com/ + любой IoC, поддерживающий интерсепторы для менеджмента привилегий (колец) сделает, в принципе то же самое. Но реализация интересная :)
У него killer-feature — это автопарсинг команд :) Фактически, не нужно даже писать свою оболочку. Но он больше для обработки явных команд, а-ля действий. В случае rpc на него сверху прийдется еще много чего навернуть.
Sign up to leave a comment.

Articles