Получить сериализуемый объект из сеанса в Silverlight - PullRequest
1 голос
/ 05 августа 2009

У меня есть сложный, [Сериализуемый] объект, сохраненный в сеансе. На моих страницах .aspx есть острова Silverlight 3.0, которым требуется доступ к этим данным и их типу данных. Насколько я понимаю, Silverlight не поддерживает [Serializable], и ​​поскольку он работает на клиенте, он не имеет легкого доступа к сеансу. Я ищу надежный способ доступа к этим данным в моем файле Page.xaml.cs.

Я открыт для хранения в ISO Storage после его получения, но как его найти, прочитать его из Silverlight? Скрытые поля не являются опцией, так как это сложный тип данных с десятками свойств и несколькими словарями, списками других объектов.

1 Ответ

1 голос
/ 05 августа 2009

Классический способ доступа к данным этого типа - использование службы WCF с поддержкой silverlight на сайте ASP.NET, который осуществляет доступ к данным. Затем вы добавляете сервисную ссылку из клиента Silverlight и запрашиваете данные у сервера (асинхронно).

Обратите внимание, что по умолчанию это будет отдельная объектная модель (прокси от "mex"). Если вам нужен тот же тип, вам придется повторить код на клиенте (вы не можете использовать разделение сборки между клиентом и сервером здесь).

Я не знаю, будет ли версия svcutil для Silverlight разрешать повторное использование типов (обычная версия делает это), но если нет, то другой вариант - просто вернуть xml или двоичный файл из сервиса и десериализовать локально. Одним из вариантов здесь будет что-то вроде protobuf-net.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...