对象属性未被反序列化

时间:2011-10-03 15:01:31

标签: c# wcf soap xml-serialization

使用svcutil我从模式文件生成代码。到目前为止,除了这个“Item”属性之外,所有对象都序列化和反序列化ok:

    [System.Xml.Serialization.XmlAnyElementAttribute(Order=2)]
    [System.Xml.Serialization.XmlElementAttribute("AbstractQuery", typeof(AbstractQueryType), Order=2)]
    public object Item
    {
        get
        {
            return this.itemField;
        }
        set
        {
            this.itemField = value;
        }
    }

当我尝试将Item对象强制转换为实现AbstractQuery的QueryType类型时,我收到错误消息:

  

无法将类型为“System.Xml.XmlElement”的对象强制转换为类型   'OGC.CSW.ebRIMProfile.QueryType'

我正在尝试这样做:

(QueryType) test = (QueryType)Request.GetRecords.Item;

我不想要XML,我想要我的对象,任何想法?

1 个答案:

答案 0 :(得分:0)

我能够通过添加额外的一行来获得它:

在:

[System.Xml.Serialization.XmlAnyElementAttribute(Order=2)]
[System.Xml.Serialization.XmlElementAttribute("AbstractQuery", typeof(AbstractQueryType), Order=2)]

后:

[System.Xml.Serialization.XmlAnyElementAttribute(Order=2)]
[System.Xml.Serialization.XmlElementAttribute("AbstractQuery", typeof(AbstractQueryType), Order=2)]
[System.Xml.Serialization.XmlElementAttribute("Query", typeof(QueryType), Order = 2)]