Мне пришлось сгенерировать некоторые классы из файла xsd. Классы и свойства генерируются правильно с аннотацией сериализации xml. Проблема в том, что десятичные свойства класса сериализуются с помощью Newtonsoft. Json даже не заполняется. Я хотел бы сериализовать только десятичные свойства, которые правильно заполнены. Сумма является частью SaleMessage
Например:
class Amount
{
[System.Xml.Serialization.XmlAttributeAttribute()]
public decimal RequestedAmount;
[System.Xml.Serialization.XmlAttributeAttribute()]
public decimal CashBackAmount;
[System.Xml.Serialization.XmlAttributeAttribute()]
public decimal TipAmount;
}
//Usage
var amount = new Amount()
{
RequestedAmount = 12.0
}
Используя эту структуру, она всегда будет сериализовать все свойства
как это
{"RequestedAmount":12.0,"CashBackAmount":0.0,"TipAmount":0.0}
Что не является ожидаемым поведением.
Вопрос в том, как изменить сериализацию, чтобы не анализировать не установленные свойства
static string Serialize(SaleMessage saleMessage)
{
var serialize= JsonConvert.SerializeObject(saleToPoiMessage,
new StringEnumConverter(),
new IsoDateTimeConverter() { DateTimeFormat = DateTimeFormat });
return serialize;
}
Любая помощь приветствуется:)