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;
}
}
}