montaque

小碗喝酒,小口吃肉

博客园 首页 新随笔 联系 订阅 管理

在 Silverlight 中,有几种获取后台数据的方式。 通过会有一个Service来暴露这些数据,对于sl2 这个service可以是最简单的ASMX或者用WCF的basichttpbinding, 您可以通过添加引用来生成代理,来适用这个service。

 

如果只是简单的数据的话,你也可以通过访问一个远程的XML文件来获取这些数据,拿到XML之后,需要把他转换成对象。也有几种方式

  • 用xmlReader
  • 用LinqForXml
  • 用系统解析XAML的方式,也就是本文中提到的方式。其实是最简单的一种方式。

思路:

首先定义个对像,我们知道在WPF/Silverlight 的class Resource中可以加入资源,资源可以是任意的对象。

而在程序中,可以通过访问资源Key的方式拿到这些对象。事实上,他拿这些对象的时候,就是适用一个简单的XamlReader来反序列化之。

 

一下是一个简单的Demo

 

假定有一下Class

 

Code

 

这时候你可以在resource中,加上一个自己的xmlns前缀,指向这个class所有的namespace和assembly

比如在Xaml中你可以这样些,这时候有很好的智能提示。

 

Code

 

然后我们新建一个xml文件,把我们写好的xaml copy进去。删掉一些不必要的属性,不如Key。 和 class

变成一下xml

 

Code

 

然后用一下简单的代码就可以反序列化得到对象的访问。

 

 

Code

 

如果是Sl, 把LoadAsyc改为Load就可以了。

如果正式应用的话,可以把Xml放在服务端,然后通过webclient download,然后调用以上代码做反序列化。

 

然后你就可以做正常的binding,Animation了,当然要正常工作的话,属性要改为DependencyProperty

 

 

posted on 2008-08-12 08:59  montaque  阅读(2894)  评论(2编辑  收藏  举报