WCF中IsWrapped属性的用途是什么

时间:2014-01-13 15:44:47

标签: c# wcf serialization xml-serialization

WCF中“IsWrapped”属性的用途是什么。我应该在哪种情况下使用这个属性?为什么?

1 个答案:

答案 0 :(得分:6)

  

Unwrapped Messages (MSDN)

     

默认情况下,对邮件正文进行格式化,以便包装服务操作的参数。

  

MessageContractAttribute.IsWrapped Property (MSDN)

     

将IsWrapped的值设置为false以禁止将消息体序列化到的包装器元素。

所以,考虑这个(修剪过的)消息:

<s:Envelope>
  <s:Body>
    <Add>
      <n1>100</n1>
      <n2>15.99</n2>
    </Add>
  </s:Body>
</s:Envelope>

当您将IsWrapped设置为false时,邮件正文将不会包含在具有操作名称的元素中(在这种情况下为Add):

<s:Envelope>
  <s:Body>
    <n1>100</n1>
    <n2>15.99</n2>
  </s:Body>
</s:Envelope>

这些属性是为了实现互操作性,例如在编写客户端以使用没有期望消息被包装的服务时。