c# - 使用 XmlSerializer 序列化为 XML 字符串时对序列化值进行舍入

标签 c# xml-serialization

我正在使用 XmlSerializer 将对象模型序列化为 XML。目前,在序列化之前,我正在反复检查整个模型,并根据某些属性将任何值四舍五入到小数点后 1 或 2 位。

有没有办法通过子类化 XmlSerializer.我尝试重写 protected override void Serialize(object o, XmlSerializationWriter writer) 方法,但它从未被调用。

这是我执行序列化的代码块:

 StringWriter writer = new Utf8StringWriter();

 XmlWriter xml = XmlWriter.Create(writer, new XmlWriterSettings() { Encoding = writer.Encoding });

 new MySubClassSerializer(engine.GetType()).Serialize(xml, engine);

我的子类序列化器目前不执行任何操作,只是对其父级进行子类化。

最佳答案

如果将这些值包装在另一个属性中会怎样?像这样:

[XmlIgnore()]
public float SomeValue { get; set; }

[XmlAttribute("SomeValue")]
public float SomeValueRounded
{
    get { return (float)Math.Round(SomeValue, 2); }
    set { SomeValue = value; }
}

关于c# - 使用 XmlSerializer 序列化为 XML 字符串时对序列化值进行舍入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9727985/

相关文章:

c# - 在 WinRT - Windows 8 - Metro App 中上次编辑 xml 文件的时间

c# - 向用户呈现文件的 XML 值的最佳方式?

java - 当我在 java 中将对象序列化为 XML,然后反序列化它时,我无法在预先存在的内容上使用我的函数。有人能解决这个问题吗?

c# - 如何从动态添加的标签中检索数据,在asp.net c#中动态添加的div标签中的下拉列表

c# - MSI安装包安装程序,但无法启动

c# - 未知类型的动态,这还能如何实现?

c# - 是否可以将自定义结构序列化为 xml 属性?

c# - 如何在 System.ServiceModel.ChannelFactory 中优化 WCF CreateFactory?

c# - 图像余弦波

C# 更改特定行的背景颜色