我想要一个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 { ... }
}
我要求不可能吗?
答案 0 :(得分:0)
我现在不打算拥有可空属性。
相反,我正在使用ShouldSerialize模式(我最近发现了)。
因此,在我的枚举中添加“无”值之后,它是这样的:
[XmlAttribute(AttributeName = "action")]
public EAction Action
{
get;
set;
}
public bool ShouldSerializeAction()
{
return this.Action != EAction.None;
}