Это одна из моих самых больших ошибок RIA Services :).Хорошая вещь заключается в том, что они находятся в процессе предоставления возможности возврата сложных типов из методов invoke (согласно пользовательскому голосовому сайту для RIA Services).Однако это вам сейчас не поможет:).
Лучший способ реализовать ваше требование возврата сложных объектов - это на самом деле настроить стандартную службу WCF для возврата сложных типов при необходимости.Вы делаете это обычным способом, которым вы выставляете WCF в любом веб-проекте.Затем вы используете его в своем приложении Silverlight практически так же, как вы использовали бы службу WCF в любом другом типе проекта (добавляя его в качестве ссылки на службу).Основное отличие при его использовании (по сравнению с другими типами проектов) заключается в том, что Silverlight поддерживает только асинхронные вызовы.Одно из отличий, которое следует знать от RIA Services, заключается в том, что, хотя RIA Services автоматически определяет URI доменных служб (в зависимости от того, откуда произошел XAP-файл), вам придется самостоятельно обрабатывать этот аспект (очень важно при попытке развернутьприложение :).Сделайте это, установив URI в файле app.config, или используйте метод, который я использую в коде, сопровождающем эту статью здесь: http://www.silverlightshow.net/items/Building-a-Framework-for-Silverlight-Line-Of-Business-Applications.aspx.
Что касается вашего последнего вопроса, да, RIA Services использует стандартныеАутентификация ASP.NET, поэтому cookie-файл, который он использует для поддержания вашего статуса аутентификации, также используется любыми службами WCF в том же проекте.В этой статье я немного расскажу о безопасности служб WCF, если вам нужна дополнительная информация: http://www.silverlightshow.net/items/Building-a-Silverlight-Line-Of-Business-Application-Part-3.aspx.
Надеюсь, это поможет ...
Крис