如何将一个字符串数组传递给Java应用程序消耗的WCF中的Web服务?

时间:2016-05-12 11:20:59

标签: web-services wcf

UpdateConsumerData是向Java客户端公开的API。

public void UpdateConsumerData(CustomerData customerData)
{

    /* code here */
}

[DataContract]
public class CustomerData
{

    List<string> name = null;
    List<string> id = null;

    [DataMember]
    public List<string> Name
    {
        get { return name; }
        set { name = value; }
    }

    [DataMember]
    public List<string> Id
    {

        get { return id; }
        set { id = value; }
    }
}

此API生成WSDL和XSD,如下所示

<xs:complexType name="CustomerData">
  <xs:sequence>
    <xs:element name="Name" 
                type="q1:ArrayOfstring" 
                minOccurs="0" 
                nillable="true"
                 xmlns:q1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>
    <xs:element name="Id" 
                type="q2:ArrayOfstring" 
                minOccurs="0" 
                nillable="true"
               xmlns:q2="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>
  </xs:sequence>
</xs:complexType>

它生成元素类型为type =&#34; q1:ArrayOfstring&#34;应该是type =&#34; xsd:string&#34;

我们需要在CustomerData中进行哪些代码更改才能生成所需的XSD和WSDL?

1 个答案:

答案 0 :(得分:0)

使用数组而不是集合。集合类型不能很好地转换为SOAP,但数组类型表现相当不错。