Поручить XmlSerializer обрабатывать сериализованные / десериализованные данные? - PullRequest
0 голосов
/ 27 октября 2011

У меня есть свойство enum. Я хочу, чтобы сериализованный XML для этого свойства был разделенной строкой перечисления и перечисления в обратном порядке.

У меня есть две функции, одна - ConcatCamelCase, а другая - SplitCamelCase, я хочу, чтобы сериализатор использовал их соответствующим образом, возможно ли это, просто украсив поле атрибутом?

Если нет, каковы другие варианты без необходимости связываться со всеми остальными полями?

Ответы [ 2 ]

1 голос
/ 27 октября 2011

Вам нужно будет сделать что-то вроде этого:

public class SomeClass {
    [XmlIgnore]
    public MyEnum MyRealProperty {get;set;}

    [XmlElement("MyRealProperty")]
    [EditorBrowsable(EditorBrowsableState.Never), Browsable(false)]
    public string MyProxyProperty
    {
        get {return SplitCamelCase(MyRealProperty);}
        set {MyRealProperty = ConcatCamelCase(value);}
    }
}
0 голосов
/ 27 октября 2011

Вы можете явно установить имя всего, что сериализуется, используя атрибуты XMlSerialization.

[XmlRoot("theNameYouWant")]

[XmlElement("theNameYouWant")]
...