Search code examples
c#xmlserialization

C# serialize decimal to xml


I got a decimal property, like

[XmlElementAttribute(DataType = "decimal")] decimal Price

The problem is that I wanna force it to serialize always with precision of 2, but if the price is 10.50 it will be serialized to XML like <Price>10.5</Price>.

Theres any way to force it (without creating a new property or changing the get of this property? I'm looking for some way to do this only sending a pattern to the XmlSerializer (or the XmlElementAttribute) or any smart way to do this ?

Thanks


Solution

  • You could add XmlIgnore to the actual decimal property and introduce a new property PriceAsString which returns, eh, the price as string (in 10.50 format).

    You could of course also implement IXmlSerializable and do everything yourself.

    However, none of these ways really rocks, and you already stated you were not going to go down this road anyway...