惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
Martin Fowler
Martin Fowler
Vercel News
Vercel News
U
Unit 42
Engineering at Meta
Engineering at Meta
aimingoo的专栏
aimingoo的专栏
MyScale Blog
MyScale Blog
Y
Y Combinator Blog
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
B
Blog RSS Feed
N
Netflix TechBlog - Medium
GbyAI
GbyAI
F
Fortinet All Blogs
MongoDB | Blog
MongoDB | Blog
大猫的无限游戏
大猫的无限游戏
C
Check Point Blog
M
MIT News - Artificial intelligence
D
Docker
IT之家
IT之家
Stack Overflow Blog
Stack Overflow Blog

博客园 - montaque

xp 与 windows 7 共享收藏夹 Microsoft ILM V2 新特性 云计算 PDC , XAML 2009以及未来 PDC , KeyNote2 个人计算,Windows 7+ Live Service PDC - C#4.0 以及未来 PDC 第一天总结 PDC 2008 让你的Expression XAML 编辑器支持智能提示 silverlight 测试 Powershell 脚本自动下载 FTP Server上面固定格式的文件 EDI batch Receiving in Biztalk 2006 R2 EDI Party Resolution in Biztalk R2 EDI in Biztalk 2006 R2 Hello,Biztalk 2006 R2 BAM, WCF 集成 Hello, Biztalk 2006 R2 BAM what's new in Biztalk 2006 R2 hello biztalk R2 Mix08
WPF/Silverlight 中利用XamlReader /Writer 来处理对象的序列...
montaque · 2008-08-12 · via 博客园 - 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