Web 服务:想要返回可序列化的字典,但它显示数据集

本文关键字:字典 数据集 显示 序列化 服务 返回 Web | 更新日期: 2023-09-27 17:48:55

我想从 Web 服务返回字典集合。 由于我们无法直接从 Web 服务返回字典类型,因此我按照此链接中所述制作了可序列化字典

这很好,我可以将集合返回为 xml 如下:

<?xml version="1.0" encoding="utf-8"?>
<SerializableDictionaryOfStringString xmlns="http://tempuri.org/">
  <Item>
    <Key>
      <string xmlns="">k1</string>
    </Key>
    <Value>
      <string xmlns="">abcdef</string>
    </Value>
  </Item>
  <Item>
    <Key>
      <string xmlns="">k2</string>
    </Key>
    <Value>
      <string xmlns="">xyz</string>
    </Value>
  </Item>
</SerializableDictionaryOfStringString>

但是,使用此 Web 服务时会出现此问题。 我的 Web 服务方法不是 SerializableDictionary 返回类型,而是将返回数据类型显示为 DataSet。 我不知道如何处理返回数据并利用,因为尽管它作为数据集返回,但它实际上不是数据集,我无法对它做任何事情,例如绑定到 gridview、ds.tables[0] 等......

那么,如何操作来自 Web 服务的返回数据?

Web 服务:想要返回可序列化的字典,但它显示数据集

字典不是DTO(数据传输对象)最合乎逻辑的选择。

退后一步,您想从服务器返回什么到消费者?

我认为这只是

class MyDTO { public string Key {get; set; } public string Value {get; set; } }
public List<MyDTO> Servermethod() { ... }

根据需要添加[WebMethod][Serializable][OperationContract][DataContract]属性。

然后由客户从列表中创建字典,这很方便。