| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Распределённые приложения и сеть > Convert Remoting to WCF |
| Автор: Moid 25.8.2014, 19:04 |
| Встал вопрос перевода большого клиент серверного проекта с Remoting на WCF. Покопав тему уткнулся в основные проблемы: - передача MarshalByRefObject - контракты с интерфейсными объектами, о которых клиент ничего не знает(т.е. клиент видит только общие интерфейсы, классы объектов от него скрыты и ServiceKnownType не помогает (http://stackoverflow.com/questions/1376495/wcf-interfaces-generics-and-serviceknowntype) Есть мысль написать враппер, который будет возвращать на запрос клиентом объекта с сервера endpoint. Клиент по этому endpoint-у получает уже объект. В этом случае придется каждый такой интерфейс дополнить методами возврата поинта и следить за временем жизни соединений. Кто заморачивался на эту тему? какие проблемы встретили на пути? |
| Автор: mihryak 25.8.2014, 19:47 |
| Вообще, в ссылке правильно написано: WCF работает через обмен сообщениями. Там же написано, что ServiceKnownType работает так, как он и должен работать. А какую задачу вы решаете, переходя на WCF? Если есть веские причины уйти от Remoting, или же просто скучно и есть свободные ресурсы, то стоит пересмотреть архитектуру и привести её в соответствие с идеологией WCF. В обратном же случае, очень не рекомендую пытаться "натянуть" WCF на Remoting, странная затея без шансов высоко взлететь, как мне кажется. |
| Автор: Moid 26.8.2014, 14:19 |
| обнаружилась еще одна проблема: не получается создать endpoint на конкретный объект, созданный на сервере вручную. Вопрос: поддерживает ли WCF такую возможность? Желательно с линкой на источник. |
| Автор: Ilya81 26.8.2014, 14:55 |
| Такая возможность не поддерживается. Т. е. все DataContract передаются через ServiceContract. Методов внутри DataContract быть не может. |
| Автор: Moid 2.9.2014, 14:35 |
| накопал, что через IServiceBehaviour можно переопределить возвращаемый инстанс объекта хостом. Не могу понять, можно ли переопределить IEndpointBehaviour так, чтобы енд поинт указывал на нужный мне инстанс объекта? |