Xml 序列化浮点值

mrd*_*mrd 2 c# xml floating-point serialization

Invoice invoice = new Invoice();
invoice.TotalInclTax = 4194.00f;
invoice.serialize();
Run Code Online (Sandbox Code Playgroud)

我需要一些帮助来序列化浮点值。目前它对 4194.00 的序列化如下:

<TotalInclTax>4194</TotalInclTax>
Run Code Online (Sandbox Code Playgroud)

但是,我想要这样的东西:

<TotalInclTax>4194.00<TotalInclTax>
Run Code Online (Sandbox Code Playgroud)

Lar*_*rry 5

您可以稍微调整您的类以自定义 TotalInclTax 的序列化方式:

static CultureInfo ci = CultureInfo.InvariantCulture;
float _TotalInclTax = 0;

[XmlIgnore]
public float TotalInclTax 
{
    get { return _TotalInclTax ; }
    set { _TotalInclTax  = value; }
}

[XmlElement("TotalInclTax")]
public string CustomTotalInclTax
{
    get { return TotalInclTax.ToString("#0.00", ci); }
    set { float.TryParse(value, NumberStyles.Float, ci, out _TotalInclTax); }
}
Run Code Online (Sandbox Code Playgroud)