Как указать пользовательское форматирование на XmlWriter - PullRequest
1 голос
/ 16 января 2012

После выполнения сериализации мой XML выглядит как

<Prisinfo>
  <Enhet>kr</Enhet> 
  <Mengde>4.000000</Mengde> 
- <Delmengder>
- <Delmengde>
  <Mengde>2.000000</Mengde> 
  <Tekst>tekst</Tekst> 
  <Egenskaper /> 
  </Delmengde>
  </Delmengder>
  <Enhetspris>100.000000000000</Enhetspris> 
  <Sum>400.000000000000000000</Sum>

Мне нужен способ управления форматированием десятичных чисел. К сожалению, я не нашел решения.

1 Ответ

0 голосов
/ 16 января 2012

Вы можете расширить свой класс строковым представлением десятичного поля, отформатированного так, как вам нужно, и пометить десятичное поле атрибутом XmlIgnore, например:

[XmlRoot]
public class X
{
    [XmlIgnore]
    public decimal Dec { get; set; }

    [XmlElement("Dec")]
    public string DecString
    {
        get
        {
            return Dec.ToString("F2", CultureInfo.InvariantCulture);
        }
        set
        {
            Dec = decimal.Parse(value, CultureInfo.InvariantCulture);
        }
    }
}
...