Вручную использовать WSDL в Flex Builder 3 - PullRequest
2 голосов
/ 31 октября 2011

Я пытаюсь использовать мой веб-сервис .Net в проекте Flex Builder 3.Подпись функции в сервисе:

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

Я попытался импортировать WSDL с помощью мастера, но когда я попытался вызвать веб-сервис, это приводит к ошибке, указывающей

"Невозможно ввести тип «http://www.w3.org/2001/XMLSchema::EnumsChannel" для простого типа»

Какой тип объекта мне нужно создать в Flex Builder 3 для передачи в веб-службу, чтобы он распознал его как соответствующийtype? Мастер неправильно создает соответствующий тип. Вот 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:WebService и mx:Operation, но не уверен, как обрабатывать параметры перечисления.

Полагаю, это немного похоже на вопрос Flex, .NET Web Service и NumericПеречисляет , но немного наоборот.

1 Ответ

0 голосов
/ 02 ноября 2011

попробуйте

<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>

для вызова веб-службы: введите

myWS.MyFunction.send();
...