Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight与数据集web服务的交互_Silverlight - Fatal编程技术网

Silverlight与数据集web服务的交互

Silverlight与数据集web服务的交互,silverlight,Silverlight,我的同事发现自己处于一个“有趣”的境地。他正在开发Silverlight(2.0)原型,该原型需要调用企业中现有的web服务,并将返回的数据绑定到数据显示控件。问题是,web服务返回.NET数据集(它们不会改变现有的实现),Silverlight本机不支持数据集 好的解决办法是什么?我在考虑适配器模式,但不知道中间人web服务执行转换是否是一个非常好的主意。如果存在许多现有的web服务,可能会很乏味。数据集的危险性和普遍性。我将使用一个通用代理,负责使用webmethod并将数据集转换为xml/

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


好的解决办法是什么?我在考虑适配器模式,但不知道中间人web服务执行转换是否是一个非常好的主意。如果存在许多现有的web服务,可能会很乏味。

数据集的危险性和普遍性。我将使用一个通用代理,负责使用webmethod并将数据集转换为xml/json

AFAIK,当.NETWeb服务返回数据集时,它将返回其xml表示(这非常友好)。NET客户机可以直接使用数据集这一事实仅抽象了正在进行Xml序列化反序列化的事实

因此,我将手动查询您需要的web服务,观察生成的XML,然后在客户端解析它


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

是的,这是一个很好的解决方案,它们甚至内置了关系。

请尝试以下操作:

我们以前见过数据集的原始XML,但它不是。。。。漂亮的事实上,这是非常可怕的(X-)开始时的模式部分可能看起来很可怕,但是如果您直接使用它并直接查找数据,它可能会被XmlReader解析,只要数据集不太复杂。多人的普遍意见是这一方法。尽管这意味着要慢慢地从每种类型的数据集XML中提取“有用”的数据位。你能用链接/引用进一步描述你的方法吗