C#标志枚举分隔符

时间:2010-04-15 15:07:02

标签: c# enums flags

我有一个枚举和成员类型

 [Flags]
 public enum SearchFilter
 {
    types = 0x01,
    attributes = 0x02,
    methods = 0x04
 }
 [System.Xml.Serialization.XmlAttribute("search-filter")]
 public SearchFilter search_filter = SearchFilter.types | SearchFilter.attributes | SearchFilter.methods;
序列化此类结果属性时

将是这样的:

<filter search_filter="types attributes methods" />

但需要属性:

<filter search_filter="types|attributes|methods" />

如何在类序列化时更改分隔符?

1 个答案:

答案 0 :(得分:2)

您必须完全控制它,然后 - 例如我将该成员标记为[XmlIgnore]并添加公共string属性,例如:

[XmlAttribute("search-filter")]
public string SearchShim {
    get { /* translate */ }
    set { /* translate */ }
}