C#XML可空属性

时间:2013-06-14 10:34:05

标签: c# xml serialization nullable

我想要一个enum属性是可选的。 我想实现这一目标的方法是让它可以为空。

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

但这不起作用。

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

[XmlIgnore]
public EAction? Action
{
    get;
    set;
}

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

我要求不可能吗?

1 个答案:

答案 0 :(得分:0)

我现在不打算拥有可空属性。

相反,我正在使用ShouldSerialize模式(我最近发现了)。
因此,在我的枚举中添加“无”值之后,它是这样的:

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

    public bool ShouldSerializeAction()
    {
        return this.Action != EAction.None;
    }