首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未生成simpleType代理

未生成simpleType代理
EN

Stack Overflow用户
提问于 2013-05-28 00:43:18
回答 1查看 250关注 0票数 0

我在VS中创建了一个服务引用,方法是右键单击“服务引用”并输入包含wsdl的URL。

它有点用,但是属性AddRobinsonEntryRequest.subscriberEmails被创建为字符串。它应该是EmailAddress类型的数组。

我用XMLSpy验证了wsdl,声明它是有效的。

如果我在VS中打开相同的文件,我会得到错误:类型http://backclick.de/rpc/soap/schemas/types/types:ListOfEmailAddress没有定义。

在第9行。

这里是wsdl:

代码语言:javascript
复制
    <?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>

这是生成的proxy类:

代码语言:javascript
复制
  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生成为数组,我必须做些什么?

EN

回答 1

Stack Overflow用户

发布于 2013-05-28 16:59:11

我误读了wsdl。subscriberEmails实际上需要一个字符串。ListOfEmailAddress不是数组,而是"mail1@domain.com mail1@domain.com mail2@domain.com“格式的字符串

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16777354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档