Raf*_*ler 22 c# xml serialization
我有一个十进制属性,就像
[XmlElementAttribute(DataType = "decimal")] decimal Price
问题是我想强制它始终以2的精度序列化,但如果价格是10.50,它将被序列化为XML <Price>10.5</Price>.
有什么方法可以强制它(没有创建新属性或更改此属性的获取?我正在寻找一些方法来执行此操作只将模式发送到XmlSerializer(或XmlElementAttribute)或任何智能方法来执行此操作?
谢谢
Jim*_*eth 27
我遇到了相反的问题.我的小数字序列化为4位小数,即使它们都是4个零.我发现,如果我打电话,decimal.Round(value, 2)它会序列化为2位小数.似乎Decimal类型在序列化时会记住你最后舍入的内容.
我对这个建议持怀疑态度,但这很简单.即使该值不需要舍入,调用Round也会更改序列化中显示的小数位数.
您可以添加XmlIgnore到实际的十进制属性并引入一个新属性PriceAsString,它返回eh,价格为字符串(10.5 0格式).
你当然也可以IXmlSerializable自己实现并做好一切.
然而,这些方式都没有真正发挥作用,而且你已经表明你无论如何也不会走这条路......
| 归档时间: |
|
| 查看次数: |
12484 次 |
| 最近记录: |