【问题标题】:Silverlight interaction with DataSet web servicesSilverlight 与 DataSet Web 服务的交互
【发布时间】:2011-11-17 22:05:36
【问题描述】:

我的同事发现自己处于“有趣”的境地。他正在开发一个 Silverlight (2.0) 原型,该原型需要调用企业中现有的 Web 服务并将返回的数据绑定到数据显示控件。问题是,Web 服务返回 .NET 数据集(它们不会更改现有实现),而 Silverlight 本身并不支持数据集。

什么是好的解决方法?我在想一个适配器模式,但不知道中间人 Web 服务进行转换是否是一个很好的主意。如果有许多现有的 Web 服务,可能会很乏味。

【问题讨论】:

    标签: silverlight


    【解决方案1】:

    AFAIK,当 .NET Web 服务返回 DataSet 时,它会返回其 XML 表示(这非常友好)。 .NET 客户端可以直接使用 DataSet 的事实只是抽象了发生 Xml 序列化-反序列化的事实。

    所以我会手动查询你需要的 web 服务,观察生成的 XML,然后在客户端解析它。

    另一种可能性是利用 Web 服务使用标准 XML 序列化器这一事实,因此您可以从返回的架构创建 C# 类,然后让 XmlSerializer 自动处理它。我不确定 XSD.exe 工具生成的代码是否对 Silverlight 友好,但值得一试。

    【讨论】:

    • 我们之前已经看过 DataSets 的原始 XML,但它并不......漂亮......事实上,它是彻头彻尾的可怕 X-)
    • 一开始的schema部分可能看起来很吓人,但是如果你省略它直接获取数据,它可能会被XmlReader解析,只要数据集不太复杂。 diranieh.com/NETSerialization/XMLSerialization.htm
    • 多人的普遍看法是这种方法。尽管这意味着从每种类型的 DataSet XML 中缓慢地提取“有用”位。
    【解决方案2】:

    尝试以下操作:http://silverlightdataset.net

    【讨论】:

      【解决方案3】:

      数据集的危险和普遍的讨厌。我会使用一个通用代理,它负责使用 web 方法并将数据集转换为 xml/json

      【讨论】:

      • 您能否通过链接/参考进一步描述您的方法
      【解决方案4】:

      是的,silverlight ds 是一个很好的解决方案,他们甚至内置了关系

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多