我想从webservice返回Dictionary集合。由于我们无法直接从Web服务返回Dictionary Type,因此我按照this link
中的描述制作了Serializable Dictionary很好,我可以将集合作为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]等。 ...
那么,我如何操作来自webservice的返回数据呢?
答案 0 :(得分:6)
字典不是DTO(数据传输对象)最合理的选择。
退后一步,您希望从服务器返回消费者?
我认为这只是
class MyDTO { public string Key {get; set; } public string Value {get; set; } }
public List<MyDTO> Servermethod() { ... }
根据需要添加[WebMethod]
,[Serializable]
或[OperationContract]
,[DataContract]
属性。
然后由客户端从列表中创建一个字典是方便的。