如何在 XmlWriter 上指定自定义格式

发布于 2024-12-27 09:42:02 字数 475 浏览 1 评论 0原文

执行序列化后,我的 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>

我需要一种方法来控制十进制数字格式。不幸的是,我还没有找到解决方案。

After executing Serialize my XML looks like

<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>

I need a way to control decimal numbers formating. Unfortunately, I have not found a solution.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜吻♂芭芘 2025-01-03 09:42:02

您可以使用根据需要格式化的小数字段的字符串表示形式扩展您的类,并使用 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);
        }
    }
}

You can extend your class with string representation of decimal field formatted as you need and mark decimal field with XmlIgnore attribute, e.g.:

[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);
        }
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文