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