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

C# XML属性值无法按预期解析为Enum枚举类型问题咨询

核心问题

你的属性和XML节点的映射配置不匹配,导致XML序列化器无法读取到正确的枚举值:

  • 你在DynamicFieldParameter类的ValueTypeID属性上标注了[XmlAttribute("ParameterValueType")],这个配置的含义是:序列化/反序列化时,该属性对应XML节点里名为ParameterValueType的属性
  • 但你实际要解析的XML里,该属性的名称是ValueTypeID,和配置的名称完全对不上,序列化器找不到对应值就会自动使用枚举的默认值(默认取枚举定义的第一个成员,也就是值为0的Conditional)

你枚举上的[XmlEnum]配置本身是正确的,只要属性映射关系修正后,XML里的字符串"1"会正常解析为Static枚举值。

解决方法

二选一即可:

  1. 修改属性的XmlAttribute配置,和XML实际属性名匹配:
// 写法1:省略参数,默认会用属性名ValueTypeID作为XML属性名
[XmlAttribute]
public ParameterValueType ValueTypeID { get; set; }

// 写法2:显式指定对应XML属性名
[XmlAttribute("ValueTypeID")]
public ParameterValueType ValueTypeID { get; set; }
  1. 如果你需要保留ParameterValueType作为映射名,就把XML里的属性名从ValueTypeID="1"改成ParameterValueType="1"。

内容的提问来源于stack exchange,提问作者tRuEsAtM

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 18:09:02