0

「サービス参照」を右クリックし、wsdl を含む URL を入力して、VS でサービス参照を作成します。

それは機能しますが、プロパティ AddRobinsonEntryRequest.subscriberEmails は文字列として作成されます。タイプ EmailAddress の配列である必要があります。

XMLSpy で wsdl を検証したところ、有効であることが示されています。

VS で同じファイルを開くと、次のエラー表示されます。

9行目。

ここにwsdl:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:sch0="http://backclick.de/rpc/soap/schemas/messages" xmlns:sch1="http://backclick.de/rpc/soap/schemas/types" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://backclick.de/rpc/soap/schemas/types" targetNamespace="http://backclick.de/rpc/soap/schemas/types">
    <wsdl:types>
        <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://backclick.de/rpc/soap/schemas/messages" xmlns:types="http://backclick.de/rpc/soap/schemas/types" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://backclick.de/rpc/soap/schemas/messages">
            <import namespace="http://backclick.de/rpc/soap/schemas/types"/>
            <element name="AddRobinsonEntryRequest">
                <complexType>
                    <all>
                        <element name="subscriberEmails" type="types:ListOfEmailAddress"/>
                    </all>
                </complexType>
            </element>
            <element name="AddRobinsonEntryResponse">
                <complexType>
                    <sequence>
                        <element name="success" type="boolean"/>
                    </sequence>
                </complexType>
            </element>
        </schema>
        <schema xmlns="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://backclick.de/rpc/soap/schemas/types">
            <simpleType name="ListOfEmailAddress">
                <list itemType="tns:EmailAddress"/>
            </simpleType>
            <simpleType name="EmailAddress">
                <restriction base="string">
                    <pattern value="[a-z0-9!#$%&amp;'*+/=?^_`{|}~-]+(\.[a-z0-9!#$%&amp;'*+/=?^_`{|}~-]+)*@([a-z0-9]([a-z0-9-]*[a-z0-9])?\.)+[a-z0-9]([a-z0-9-]*[a-z0-9])?"/>
                </restriction>
            </simpleType>
        </schema>
    </wsdl:types>
    <wsdl:message name="AddRobinsonEntryResponse">
        <wsdl:part name="AddRobinsonEntryResponse" element="sch0:AddRobinsonEntryResponse"/>
    </wsdl:message>
    <wsdl:message name="AddRobinsonEntryRequest">
        <wsdl:part name="AddRobinsonEntryRequest" element="sch0:AddRobinsonEntryRequest"/>
    </wsdl:message>
    <wsdl:portType name="BackclickService">
        <wsdl:operation name="AddRobinsonEntry">
            <wsdl:input name="AddRobinsonEntryRequest" message="sch1:AddRobinsonEntryRequest"/>
            <wsdl:output name="AddRobinsonEntryResponse" message="sch1:AddRobinsonEntryResponse"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="BackclickServiceSoap11" type="tns:BackclickService">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="AddRobinsonEntry">
            <soap:operation soapAction=""/>
            <wsdl:input name="AddRobinsonEntryRequest">
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output name="AddRobinsonEntryResponse">
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="BackclickServiceService">
        <wsdl:port name="BackclickServiceSoap11" binding="tns:BackclickServiceSoap11">
            <soap:address location="http://asp.backclick.de:80/bc/rpc/soap"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

これは結果のプロキシクラスです:

  public partial class AddRobinsonEntryRequest : object, System.ComponentModel.INotifyPropertyChanged {

        private string subscriberEmailsField;

        /// <remarks/>
        public string subscriberEmails {
            get {
                return this.subscriberEmailsField;
            }
            set {
                this.subscriberEmailsField = value;
                this.RaisePropertyChanged("subscriberEmails");
            }
        }

配列として生成されたsubscriberEmailsFieldを取得するにはどうすればよいですか?

4

1 に答える 1