题
我的同事发现自己处于一个“有趣”的境地。他正在开发一个 Silverlight (2.0) 原型,该原型需要调用企业中现有的 Web 服务并将返回的数据绑定到数据显示控件。问题是,Web 服务返回 .NET 数据集(它们不会更改现有的实现),而 Silverlight 本身并不支持数据集。
一个好的解决方法是什么?我正在考虑适配器模式,但不知道中间人 Web 服务来执行转换是否是一个非常好的主意。如果现有的 Web 服务很多,可能会很乏味。
解决方案
AFAIK,当 .NET Web 服务返回 DataSet 时,它会返回其 XML 表示形式(这是非常友好的)。.NET 客户端可以直接使用 DataSet 的事实仅抽象了正在发生的 Xml 序列化-反序列化这一事实。
因此,我会手动查询您需要的 Web 服务,观察生成的 XML,然后在客户端解析它。
另一种可能性是利用 Web 服务使用标准 XML Serializer 的事实,因此您可以从返回的架构创建 C# 类,然后让 XmlSerializer 自动处理它。我不确定 XSD.exe 工具生成的代码是否对 Silverlight 友好,但值得一试。
其他提示
请尝试以下操作: http://silverlightdataset.net
数据集的危险和普遍的肮脏性呃。我将使用一个通用代理来负责使用 webmethod 并将数据集转换为 xml/json
是的, 银光 DS 是一个很好的解决方案,他们甚至内置了关系
不隶属于 StackOverflow