我尝试将肥皂请求发送到服务器。我有这个肥皂形式,其中urn:fetchType是FetchType类型的枚举值:

public enum FetchType
{
    AllDetails = 0,
    OnlyRoot = 1
}

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="***">
   <soapenv:Header/>
   <soapenv:Body>
      <urn:GetEventList>
         <!--Optional:-->
         <urn:sessionId></urn:sessionId>
         <!--Optional:-->
         <urn:filterXml></urn:filterXml>
         <urn:fetchType></urn:fetchType>
         <urn:subscribe></urn:subscribe>
      </urn:GetEventList>
   </soapenv:Body>
</soapenv:Envelope>


当我尝试发送1或2时,我收到错误响应:实例验证错误:'1'不是FetchType的有效值。

我也尝试传递类似FetchType.AllDetails的信息并获得响应:实例验证错误:'FetchType.AllDetails1'对于FetchType来说不是有效值。

等等...不同的解决方案。

这是应该接收请求的方法的签名:

public byte[] GetEventList(string sessionId, [XmlElement(DataType = base64Binary")] byte[] filterXml, FetchType fetchType, bool subscribe){ ... some code ...; }

你能说我可以用什么方式传递枚举值吗?

谢谢! :)

最佳答案

对您来说太晚了,但是谁知道呢,也许有一天某人会需要这个问题的答案。

只需发送字符串值(例如:AllDetails



<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="***">
   <soapenv:Header/>
   <soapenv:Body>
      <urn:GetEventList>
         <!--Optional:-->
         <urn:sessionId></urn:sessionId>
         <!--Optional:-->
         <urn:filterXml></urn:filterXml>
         <urn:fetchType>AllDetails</urn:fetchType>
         <urn:subscribe></urn:subscribe>
      </urn:GetEventList>
   </soapenv:Body>
</soapenv:Envelope>

10-05 23:05