2011-10-31 84 views
2

我试图在Flex Builder 3项目中使用我的.Net Web服务。该功能在服务签名是:在Flex Builder 3中手动使用WSDL

bool MyFunction(Enums.Channels var1, Enums.Payments.PayMethods var2) 

我试图导入具有向导中的WSDL,但是当我试图把它导致一个错误,说明

“不能马歇尔式” http://www.w3.org/2001/XMLSchema::EnumsChannel Web服务“ 简单类型”

什么样的对象,我需要在Flex Builder 3创建传递到Web服务,以便它会将其识别为适当的类型?向导没有正确创建适当的类型。这是枚举的xsd。

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://schemas.datacontract.org/2004/07/My.Shared" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/My.Shared"> 
    <xs:simpleType name="Enums.Channels"> 
    <xs:restriction base="xs:string"> 
     <xs:enumeration value="Web"/> 
     <xs:enumeration value="ContactCenter"/> 
    </xs:restriction> 
    </xs:simpleType> 
    <xs:element name="Enums.Channels" nillable="true" type="tns:Enums.Channels"/> 
    <xs:simpleType name="Enums.Payments.PayMethods"> 
     <xs:restriction base="xs:string"> 
     <xs:enumeration value="CreditCard"/> 
     <xs:enumeration value="PayPal"/> 
     <xs:enumeration value="eBillme"/> 
     <xs:enumeration value="BillMeLater"/> 
     <xs:enumeration value="TeleCheck"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:element name="Enums.Payments.PayMethods" nillable="true" type="tns:Enums.Payments.PayMethods"/> 
</xs:schema> 

我想尝试建立自己的对象称自己的服务(不使用向导)....创建mx:WebServicemx:Operation,但不知道如何处理枚举参数。

我想这有点类似于这个问题Flex, .NET Web Service and Numeric Enums但有点相反。

回答

-1

试试这个

<s:WebService id="myWS" wsdl="yourServicePath?WSDL" result="resultHandler(event)" fault="faultHandler(event)"> 
    <s:operation name="MyFunction"> 
     <s:request xmlns=""> 
      <var1>{var1 value}</var1> 
      <var2>{var2 value}</var2> 
     </s:request> 
    </s:operation> 
</s:WebService> 

调用web服务:类型

myWS.MyFunction.send(); 
+0

-1,因为这不是一个问题的答案。用户明确指出他使用带有操作的web服务,但他不知道如何处理枚举。因此你的回答可以被认为对这个问题没有帮助。 –