我必须创建一个发布 - 订阅silverlight应用程序。发布事件的类在类库中。
我有一个.Net Web解决方案,其中包含Silverlight项目和一个asp.net Web项目。 asp.net项目使用类库中的一些类。这些类暴露了一些事件,一旦触发,我得到返回的数据并将它们存储在我的会话变量中。
我创建了几个会话变量 - 主要是List类型。
我想通过将用户重定向到包含silverlight插件的aspx页面来启动silverlight xaml页面。
我想使用会话变量中的List并在数据网格中显示它们。
我可以在aspnet和silverlight app之间共享会话变量吗?什么应该是实现这个推拉目标的最佳方法,当类抛出事件时,我获取数据并显示在silverlight图表中,当类发布新事件时图表会刷新?
答案 0 :(得分:2)
您无法在ASP.NET和Silverlight之间共享会话变量。原因很容易理解:ASP.NET运行服务器端,Silverlight运行ClientSide。
但是,您可以通过Web服务调用从客户端获取这些信息。例如,使用WCF,您可以为WebService激活ASP.NET会话,并使用正确的序列化将服务中的这些信息发送到客户端。要获得良好的结果,需要很好地理解会话数据的序列化(例如,使用WCF,返回类型化数据)。
有关为WCF服务激活ASP.NET会话的信息,see this
请记住,因为默认的ASP.NET会话管理使用cookie来存储会话令牌客户端,如果您的Silverlight应用程序绕过浏览器网络堆栈,您将必须自己管理cookie。幸运的是,Silverlight默认使用浏览器堆栈。
答案 1 :(得分:1)
请查看“如何在Silverlight中访问ASP.NET会话?”
http://forums.silverlight.net/forums/t/167001.aspx#_Toc251772491
我希望它会有所帮助。