You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XML字符串无法正确反序列化为C#对象问题求助

问题原因

你的XML中,根元素<ns2:dataElement>属于命名空间http://sameplens.com,但内部的<inner>、<outerfield1>等子元素没有使用命名空间前缀,属于无命名空间范畴。而你的C#类中,XmlElement特性未显式指定Namespace属性,默认会继承根元素的命名空间,导致XmlSerializer无法匹配XML中的元素,最终所有字段值为空。

解决方法

给所有XmlElement特性添加Namespace = "",明确指定这些元素属于无命名空间,与XML中的元素匹配:

修改后的SampleClass:

[XmlRoot(Namespace = "http://sameplens.com", ElementName = "dataElement")]
public class SampleClass
{
    [XmlElement(ElementName = "inner", Namespace = "")]
    public List<SampleInnerClass> Inner { get; set; }

    [XmlElement(ElementName = "outerfield1", Namespace = "")]
    public string OuterField1 { get; set; }

    [XmlElement(ElementName = "outerfield2", Namespace = "")]
    public string OuterField2 { get; set; }
}

修改后的SampleInnerClass:

public class SampleInnerClass
{
    [XmlElement(ElementName = "innerfield1", Namespace = "")]
    public string InnerField1 { get; set; }

    [XmlElement(ElementName = "innerfield2", Namespace = "")]
    public string InnerField2 { get; set; }
}

修改后再调用ExtractDataFromResponse方法反序列化,就能正确获取XML中的数据。

内容的提问来源于stack exchange,提问作者Tamás Kovács

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 10:33:37