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 服务的返回数据?
字典不是DTO(数据传输对象)最合乎逻辑的选择。
退后一步,您想从服务器返回什么到消费者?
我认为这只是
class MyDTO { public string Key {get; set; } public string Value {get; set; } }
public List<MyDTO> Servermethod() { ... }
根据需要添加[WebMethod]
、[Serializable]
或[OperationContract]
、[DataContract]
属性。
然后由客户从列表中创建字典,这很方便。