У меня есть динамический класс, который является объектом значения, который используется для передачи аргументов в WebService. Имеет два общедоступных свойства:
package
{
[Bindable]
public dynamic class WebServiceCriteria
{
public var property1:String;
public var property2:String;
}
}
Я установил эти два свойства в одной части моего приложения:
var myCriteria:WebServiceCriteria = new WebServiceCriteria();
myCriteria.property1 = "x";
myCriteria.property2 = "y";
Затем я добавил другие - динамические - свойства в другой точке моего приложения:
myCriteria.property3 = "z";
Однако, когда я передаю экземпляр в WebService в качестве аргументов, исходные два открытых свойства не отправляются (как я вижу в Fiddler), даже если они имеют значения. Но я могу видеть их как свойства моего экземпляра Class в отладчике непосредственно перед send ().
operation.arguments = {args: myCriteria};
operation.send(); // only property3 is sent
Почему эти два свойства не отправлены?
Вот пример SOAP-запроса, отправляемого в WebService:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<intf:webservice_controller xmlns:intf="http://childDir.parentDir">
<args xsi:type="apachesoap:Map" xmlns:apachesoap="http://xml.apache.org/xml-soap">
<item>
<key xsi:type="xsd:string">property1</key>
<value xsi:type="xsd:string"></value>
</item>
<item>
<key xsi:type="xsd:string">property2</key>
<value xsi:type="xsd:string"></value>
</item>
<item>
<key xsi:type="xsd:string">property3</key>
<value xsi:type="xsd:string">z</value>
</item>
</args>
</intf:webservice_controller>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>