você pode forçar a serialização de um valor de enumeração em um número inteiro? [duplicado]

StackOverflow https://stackoverflow.com/questions/117348

Foi útil?

Solução

Enums fazer serialize para ints. Mas, geralmente, se você não gosta da maneira uma das suas propriedades fica serializado para XML, você pode simplesmente fazer isso:

[XmlIgnore]
public MyThing MyThing { get; set; }

[XmlElement("MyThing")]
[EditorBrowsable(EditorBrowsableState.Never), Browsable(false)]
public string MyThingForSerialization
{
    get { return //convert MyThing to string; }
    set { MyThing = //convert string to MyThing; }
}

Outras dicas

Enums NÃO serializar como int como padrão. Eu estou usando XMLSerializer para serializar uma classe e eu tenho o mesmo problema, como descrito.

(O exemplo de Matt Howells parece funcionar se você alterar o escopo de MyThingForSerialization ao público, mas eu gostaria de ver uma melhor implementação causa isso cria uma propriedade pública adicional)

scroll top