XML object serialization back to .NET object that has public properties, the property type can be primitive type numeric decimal, which would be converted back into a primitive numeric decimal type from XML that is a string representation of a decimal data.
The XML data exchange is string data. A .NET object/class that is using public properties using primitive numeric types such as int, double, decimal, etc., and ect. is converted to XML that is a string representation of the data in the public properties of the .NET object that is XML serialized. But when the XML object that represents the properties of the .NET object is converted back to a .NET object, the conversion of the XML string data is converted back to primitive type decimal, int, double defined by the public property in the the .NET object.
The property should be primitive numeric decimal type, the XML object conversion back into a .NET object will take care of the conversion.
[XmlElement(ElementName = "TotalAmount")]
public decimal TotalAmount{ get; set; }