通过SOAP web服务从C#到PHP的对象数组

通过SOAP web服务从C#到PHP的对象数组,c#,php,.net,soap,C#,Php,.net,Soap,我正在创建一个小型web服务,但在将对象数组从C#应用程序发送到web服务时遇到问题。我在C#中创建了一个具有不同属性的对象,其中一个属性是另一类对象的数组。C#端似乎工作正常,但在PHP端,事情没有进展。对象以所有属性到达服务,但数组始终为空 我做错了什么 我的WSDL中的类型 <types> <xsd:schema targetNamespace="http://localhost//soap/myService.wsdl"> <xsd:co

我正在创建一个小型web服务,但在将对象数组从C#应用程序发送到web服务时遇到问题。我在C#中创建了一个具有不同属性的对象,其中一个属性是另一类对象的数组。C#端似乎工作正常,但在PHP端,事情没有进展。对象以所有属性到达服务,但数组始终为空

我做错了什么

我的WSDL中的类型

<types>
    <xsd:schema targetNamespace="http://localhost//soap/myService.wsdl">
      <xsd:complexType name="SubObject">
        <xsd:sequence>
          <xsd:element name="VAL1" type="xsd:integer" />
          <xsd:element name="VAL2" type="xsd:string" />
          <xsd:element name="VAL3" type="xsd:string" />
        </xsd:sequence>
      </xsd:complexType>
    </xsd:schema>
    <xsd:schema targetNamespace="http://localhost/soap/myService.wsdl">
      <xsd:complexType name="TestObject">
        <xsd:sequence>
          <xsd:element name="PROP1" type="xsd:integer" />
          <xsd:element name="PROP2" type="xsd:string" />
          <xsd:element name="PROP3" type="xsd:string" />
          <xsd:element name="MyArray" type="tns:SubObject" minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:complexType>
    </xsd:schema>
  </types
打印来自C应用程序的对象:

stdClass Object
(
    [PROP1] => 12345
    [PROP2] => "test"
    [MyArray] => stdClass Object
        (
        )

    [PROP3] => "test"
)
server.php

function SaveProduct($object) {
  // Save
}

ini_set("soap.wsdl_cache_enabled", "0");

$server = new SoapServer('myService.wsdl');

$server->addFunction("SaveObject");

$server->handle();

嗨,我也在用C#和PHP做一个项目,但我使用的是WCF Web服务。我想你应该看看这个……我还没准备好放弃这个。除了数组之外,所有的东西都工作得很好,所以如果我能让它工作的话,我就可以完成了。好的,你能告诉你的PHP你在哪里请求数组吗?你是什么意思?服务器脚本本身是否具有saveObject函数?我可以在中编辑它。
function SaveProduct($object) {
  // Save
}

ini_set("soap.wsdl_cache_enabled", "0");

$server = new SoapServer('myService.wsdl');

$server->addFunction("SaveObject");

$server->handle();