C # Flag Enum delimiter

У меня есть Enum и член его типа

 [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" />

как можно изменить разделитель при сериализации класса?


person Ivan Bryzzhin    schedule 15.04.2010    source источник


Ответы (1)


Тогда вам придется взять его под полный контроль - например, я помечу этого члена как [XmlIgnore] и добавлю общедоступное свойство string, такое как:

[XmlAttribute("search-filter")]
public string SearchShim {
    get { /* translate */ }
    set { /* translate */ }
}
person Marc Gravell    schedule 15.04.2010