我在向Web服务发送soap请求时遇到问题。我创建了一个订单,包括一系列订单详细信息。然后我将该订单发送到网络服务。使用fiddler,我能够看到订单正确传递,但订单详细信息没有显示。我只得到:
<order><orderDetails><orderDetail /></orderDetails><order>
我已经尝试将orderDetails从订单详细信息数组更改为字符串数组,并且它们在请求中正确显示。我也在订单中得到正确的数量。他们只是空着。
这两个类都是从wsdl生成的,所以我不知道为什么orderDetail似乎没有正确序列化。我不知道如何获得更多的错误细节。任何帮助将不胜感激。感谢
来自我的网站服务生成的Reference.cs:
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.1")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://some.url")]
public partial class order {
private orderDetail[] orderDetailsField;
[System.Xml.Serialization.XmlArrayAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
[System.Xml.Serialization.XmlArrayItemAttribute("orderDetails", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public orderDetail[] orderDetails {
get {
return this.orderDetailsField;
}
set {
this.orderDetailsField = value;
}
}
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.1")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://some.url")]
public partial class orderDetail {
private int productIDField;
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public int productID {
get {
return this.productIDField;
}
set {
this.productIDField = value;
}
}
}
答案 0 :(得分:2)
似乎生成的类为每个字段都有一个“指定”字段。
设置
object.productIDSpecified=true;
使其正确序列化。希望这有助于其他人。