木子屋 Dnawo's BLOG

XmlSerializer反序列化失败:时间字符串不是有效的AllXsd值

👤 dnawo 📅 2014-04-11 👁 11968 👍 0 💬 0 🔄 来源:本站原创
<?xml version="1.0" encoding="gb2312"?>
<response>
<account>270250392</account>
<operator>腾讯Q币</operator>
<amount>1</amount>
<addtime>2014-4-15 10:51:39</addtime>
</response>

使用XmlSerializer对上边xml反序列化时失败,提示字符串“2014-4-15 10:51:39”不是有效的AllXsd值,错误原因是XmlSerializer正常序列化时间为2014-04-15T10:51:39,上边xml时间格式不正确所以反序列化失败。由于xml是从其他平台获得,只能在反序列化这边修改,下边对response类稍做修改可解决:

[XmlRoot("response")]
public class JPayResponse
{
    public string account { get; set; }
    public string @operator { get; set; }
    public int amount { get; set; }
    [XmlIgnore]
    public DateTime addtime { get; set; }

    [XmlElement("addtime")]
    public string addtime2
    {
        get { return addtime.ToString("yyyy-MM-dd HH:mm:ss"); }
        set { addtime = DateTime.Parse(value); }
    }
}


参考资料

[1].XmlSerializer:Format DateTime String:http://www.dotblogs.com.tw/alonstar/archive/2010/04/19/14688.aspx

评论(0)

暂无评论。

验证码
评论需审核通过后显示
← 上一篇 捷易通自动充值系统API接口文档 下一篇 → SQL Server2000使用行锁解决并发库存为负超卖问题