c# XML可空属性

本文关键字:属性 XML | 更新日期: 2023-09-27 18:18:28

我想有一个enum属性是可选的。
我想实现这一点的方法是让它可为空。

[XmlAttribute(AttributeName = "action")]
public EAction? Action
{
    get;
    set;
}

但是这行不通。

根据我目前对此事的了解,我可以使用的唯一有效的可空类型是string。
但如果可能的话,我宁愿不使用用字符串隐藏Enum的技巧。

[XmlIgnore]
public EAction? Action
{
    get;
    set;
}
[XmlAttribute(AttributeName = "action")]
public string _Action
{
    get { return this.Action.ToString();
    set { ... }
}

我在要求不可能的事吗?

c# XML可空属性

我现在不想让属性为空。

我使用的是ShouldSerialize模式(这是我最近发现的)。
在我的枚举中添加了一个"None"值之后,它是这样的:

    [XmlAttribute(AttributeName = "action")]
    public EAction Action
    {
        get;
        set;
    }
    public bool ShouldSerializeAction()
    {
        return this.Action != EAction.None;
    }