在SOAP信封中创建新的字典

时间:2014-04-02 12:21:20

标签: c# wcf soap

非常基本的问题,但我似乎无法在任何地方找到答案。

如何在SOAP中指定Dictionary<string, string>的新实例?基本上我有这个信封(为了便于阅读,省略了信封顶级标签):

<soapenv:Body>
   <tem:LogInWithCredentials>      
       <tem:Request>             
       <ttf1:Password>password</ttf1:Password>         
       <ttf1:UserName>username</ttf1:UserName>
       <ttf1:RequestInfo></ttf1:RequestInfo>
      </tem:Request>      
   </tem:LogInWithCredentials>
</soapenv:Body>

RequestInfo是有问题的财产,但它总是null。我假设信封中属性的存在将被反序列化为空Dictionary<string, string>,但事实并非如此。

1 个答案:

答案 0 :(得分:1)

正如@flem所说,DataContractSerializer可能会提供回答这个问题所需的线索。序列化空字典会提供以下XML。在RequestInfo元素中尝试一下,看看它是否有效(我自己没有测试过)。

<ArrayOfKeyValueOfstringstring 
    xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />