C#故障排除对象序列化错误

时间:2010-11-23 15:45:06

标签: c# serialization soap

我在向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;
        }
    }

}

1 个答案:

答案 0 :(得分:2)

似乎生成的类为每个字段都有一个“指定”字段。

设置

object.productIDSpecified=true;  

使其正确序列化。希望这有助于其他人。