2010 Silverlight Json 数据与通信

2010 Silverlight Json 数据与通信,第1张

概述环境Microsoft Visual C# 2010 Beta2       2010 集成Silverlight 3开发环境 .net 4.0   根据TerryLee的一步一步学Silverlight 2系列修改 1、建立一个Silverlight 项目     2、建立项目完成后系统会自动产生一个web项目用以运行Silverlight程序   3、Silverlight是客户端程序,我们从

环境Microsoft Visual C# 2010 Beta2

      2010 集成Silverlight 3开发环境 .net 4.0

 

根据TerryLee的一步一步学Silverlight 2系列修改

1、建立一个Silverlight 项目

 

 

2、建立项目完成后系统会自动产生一个web项目用以运行Silverlight程序

 

3、Silverlight是客户端程序,我们从服务端开始。使用Handler和WebRequest获取后台数据

Handler代码如下  添加新项 -> 选择 generic handler,生成一个扩展名为ashx的web文件

打开编辑其代码,本例代码如下

DataContractJsonSerializer 对象属于System.Runtime.Serialization.Json 命名空间.net已经内置Json序列化支持

4、实体类

在这里需要注意一个问题,我们现在有两个项目一个web项目它是基于.net4.0,另外一个Silverlight项目。

在2010Beta2,这两个项目编译的dll对应的.net版本不同,不可以互相引用。估计即使不是beta版该问题也依然存在。

对于本例来说实体类放在Silverlight项目那web项目也引用不到,只能在两个项目中把实体类写两遍。

 

5、现在开始写Silverlight客户端。2010默认建的程序里有一个页面MainPage.xaml,我们可以修改之,或者另外建一个。

在Silverlight项目右键菜单,添加新项 -> 选择 Silverlight User Control,建一个名为JasonList1.xaml的页面。

本页用ListBox显示一个三列的数据列表

 

获取数据的代码如下:

UserControl_Loaded和winform一样,在空处双击一下就自动生成该函数。

 

        可以看到访问前面写的Handler通过webRequest获取数据,并使用了.net内建的System.Runtime.Serialization.Json命名空间下的DataContractJsonSerializer对象。

 

       另外需要注意的是使用了SynchronizationContext对象,位于System.Threading命名空间,这个是解决跨线程访问UI对象的问题。

 

对此没有概念的用户可能会对使用syn.Post(SetPost,blog) 这种方法绑定感到莫名其妙,为什么不直接

posts.ItemsSource = blog.posts而要转去syn.Post(SetPost,blog) 呢。

 

6、下了一个开源项目Jason.net,不过试用不了还是版本的问题。也就是说Silverlight可能会使用一个.net 2.0的精简版本吧,反正它和一般的.net程序使用FrameWork就是不能共用。这还是个问题,不过对于序列化功能,.net已经内建Json序列化,Silverlight也同样,这倒是个好事。所以本例并没有用到第三方的Jason.net。

总结

以上是内存溢出为你收集整理的2010 Silverlight Json 数据与通信全部内容,希望文章能够帮你解决2010 Silverlight Json 数据与通信所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1037806.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存