Web服务响应中缺少对象 - c#

时间:2015-04-02 10:17:12

标签: c#

我有很大的问题。 这是reference.cs中的自动生成方法

[System.Web.Services.Protocols.SoapHeaderAttribute("SecurityValue")]
    [System.Web.Services.Protocols.SoapHeaderAttribute("MessageHeaderValue")]
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
    [return: System.Xml.Serialization.XmlElementAttribute("TestResponse", Namespace="http:/test/Services")]
    public TestResponse testRequest([System.Xml.Serialization.XmlElementAttribute("TestRequest", Namespace="http://Test.com/TestServices")] TestRequestTestRequest1) {
        object[] results = this.Invoke("TestRequest", new object[] {
                    TestRequest1});
        return ((TestResponse)(results[0]));

这是arrayitem(也是自动生成的):

/// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18047")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.foo.com")]
    public partial class FieldListType {

        private MapTypeEntry[] mapField;

        private string nameField;

        /// <remarks/>
        [System.Xml.Serialization.XmlArrayAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
        [System.Xml.Serialization.XmlArrayItemAttribute("Entry", typeof(MapTypeEntry), Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=false)]
        public MapTypeEntry[] Map {
            get {
                return this.mapField;
            }
            set {
                this.mapField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Name {
            get {
                return this.nameField;
            }
            set {
                this.nameField = value;
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18047")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://www.foo.com")]
    public partial class MapTypeEntry {

        private string keyField;

        private string valueField;

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Key {
            get {
                return this.keyField;
            }
            set {
                this.keyField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }

我的问题是Map数组中缺少对象。我通过Fiddler收到网络回复的回复。作为响应,数组中有三个Map对象。 但是在代码I的TestResponse中,我发现只有一个(最后一次尝试)对象。 我尝试过很少的东西,但我还没有找到好的解决方案。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您需要确保在两端使用相同的转换访问XML 标记。如果演员表不同,则不会读取该值。