Cześć,
Powoli trafia mnie coś z tym całym WCF niby kombajn a nie mogę odnaleść w nim funckjonalności.
"Otóż dostałem Ci ja WSDL'a lecz go zmarnowałam gdyż z pierwszego kodzenia xmla nie miałam".
O co chodzi został mi narzucony WSDL pod którego mam pisać webservice. I teraz albo ja dostaje dane z "czarnej" albo nie potrafię tego obsłużyc :) Skłaniam się ku drugiej opcji.

przykładowe dane:

<addressList>
<address>
<pole1></pole1>
<pole2></pole2>
</address>
<address>
<pole1></pole1>
<pole2></pole2>
</address>
</addressList>

Takie przypadki potrafię obsłużyć i to działa.
Teraz gdy przesyłają mi 1 item i robią to w takiej formie:

<addressList>
<pole1></pole1>
<pole2></pole2>
</addressList>

I tego mi już serializer rozgryść nie potrafi.
Generowane wsdl.exe + moje poprawki

 


 [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.0.30319.1")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:common.data.types")]
    [DataContract(Namespace = "")]
    public partial class CustomerDetailsItem
    {
...

[System.Xml.Serialization.XmlElementAttribute("addressList", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        [DataMemberAttribute(IsRequired = true, Order = 18)]
        public CustAddressItem[] addressList
        {
            get
            {
                return this.addressListField;
            }
            set
            {
                this.addressListField = value;
            }
        }
....
}
....
....

/// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.0.30319.1")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:common.data.types")]
    [DataContract(Namespace = "")]
    public partial class CustAddressItem
    {

        private string addressTypeField;

        private string countryCodeField;

        private string countryField;

        private string cityField;

        private string streetField;

        private string homeNumberField;

        private string apartNumberField;

        private string postCodeField;

        private string provinceField;

        private string phoneNumberField;

        private string eMailField;

        private string faxNumberField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        [DataMemberAttribute(IsRequired = true, Order = 1)]
        public string addressType
        {
            get
            {
                return this.addressTypeField;
            }
            set
            {
                this.addressTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        [DataMemberAttribute(IsRequired = true, Order = 2)]
        public string countryCode
        {
            get
            {
                return this.countryCodeField;
            }
            set
            {
                this.countryCodeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        [DataMemberAttribute(IsRequired = true, Order = 3)]
        public string country
        {
            get
            {
                return this.countryField;
            }
            set
            {
                this.countryField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        [DataMemberAttribute(IsRequired = true, Order = 4)]
        public string city
        {
            get
            {
                return this.cityField;
            }
            set
            {
                this.cityField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        [DataMemberAttribute(IsRequired = true, Order = 5)]
        public string street
        {
            get
            {
                return this.streetField;
            }
            set
            {
                this.streetField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        [DataMemberAttribute(IsRequired = true, Order = 6)]
        public string homeNumber
        {
            get
            {
                return this.homeNumberField;
            }
            set
            {
                this.homeNumberField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        [DataMemberAttribute(IsRequired = true, Order = 7)]
        public string apartNumber
        {
            get
            {
                return this.apartNumberField;
            }
            set
            {
                this.apartNumberField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        [DataMemberAttribute(IsRequired = true, Order = 8)]
        public string postCode
        {
            get
            {
                return this.postCodeField;
            }
            set
            {
                this.postCodeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        [DataMemberAttribute(IsRequired = true, Order = 9)]
        public string province
        {
            get
            {
                return this.provinceField;
            }
            set
            {
                this.provinceField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        [DataMemberAttribute(IsRequired = true, Order = 10)]
        public string phoneNumber
        {
            get
            {
                return this.phoneNumberField;
            }
            set
            {
                this.phoneNumberField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        [DataMemberAttribute(IsRequired = true, Order = 11)]
        public string eMail
        {
            get
            {
                return this.eMailField;
            }
            set
            {
                this.eMailField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        [DataMemberAttribute(IsRequired = true, Order = 12)]
        public string faxNumber
        {
            get
            {
                return this.faxNumberField;
            }
            set
            {
                this.faxNumberField = value;
            }
        }
    }