从Silverlight中的Session获取Serializable对象

时间:2009-08-04 21:24:59

标签: c# asp.net silverlight session

我在会话中存储了一个复杂的[Serializable]对象。我的.aspx页面中有Silverlight 3.0岛,需要访问此数据及其数据类型。据我所知,Silverlight不支持[Serializable],并且由于它在客户端上运行,因此无法轻松访问会话。我正在寻找一种可靠的方法来访问我的Page.xaml.cs文件中的这些数据。

我可以在检索后将其存储在ISO存储中,但如何检索,从Silverlight中读取它?隐藏字段不是一个选项,因为它是一个复杂的数据类型,包含许多属性,以及一些字典,其他对象的列表。

1 个答案:

答案 0 :(得分:1)

访问此类数据的经典方法是在ASP.NET站点上使用支持Silverlight的WCF服务来访问数据。然后,您从silverlight客户端添加服务引用,并向服务器请求数据(异步)。

请注意,默认情况下,这将是单独的对象模型(来自“mex”的代理)。如果你需要相同的类型,你必须在客户端重复代码(你不能在这里使用客户端和服务器之间的程序集共享)。

我不知道svcutil的silverlight版本是否允许重用类型(常规版本),但如果不是另一种选择,只需从服务返回xml或二进制文件并在本地反序列化。这里的一个选择就是protobuf-net。