我在写一个方法从.xml文件反序列化为对象。我有在XML文件中的内部异常无效的字符串格式字符串从在(7,6)解析为datetime:无法反序列化为字符串
<?xml version="1.0" encoding="utf-8"?>
<Order xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Table>1</Table>
<OrderInfo>
<OrderID>0</OrderID>
<OrderType>AtStore</OrderType>
<Time>22/12/2014 21:07:44</Time>
<RentStatus>Finish</RentStatus>
<CancelReason>-</CancelReason>
<Cashier>test14</Cashier>
<Session>1</Session>
</OrderInfo>
<CustomerInfo />
<OrderPayment>
<PaymentType>Cash</PaymentType>
<Total>258</Total>
<DiscountPercent>0</DiscountPercent>
<Discount>0</Discount>
<Payment>258</Payment>
<PaymentFromCash>258</PaymentFromCash>
<PaymentFromWallet>0</PaymentFromWallet>
<Receive>258</Receive>
<Exchange>0</Exchange>
</OrderPayment>
<OrderDetails>
<OrderDetail>
<ProductID>107</ProductID>
<Code>5</Code>
<ProductName>abc</ProductName>
<Quantity>1</Quantity>
<Price>258</Price>
<DiscountPercent>0</DiscountPercent>
<Discount>0</Discount>
<Total>258</Total>
<Payment>258</Payment>
<Note />
</OrderDetail>
</OrderDetails>
然而,有一个在我的课没有日期时间字段:
public class Order
{
public OrderInfo OrderInfo { get; set; }
public OrderPayment OrderPayment { get; set; }
public CustomerInfo CustomerInfo { get; set; }
public List<OrderDetail> OrderDetails { get; set; }
}
public class OrderInfo
{
public string OrderID { get; set; }
public string OrderOnlineID { get; set; }
public int OrderType { get; set; }
public string Time { get; set; }
public string Note { get; set; }
public int RentStatus { get; set; }
public string Cashier { get; set; }
public string Session { get; set; }
public string CancelReason { get; set; }
}
public class OrderPayment
{
public int PaymentType { get; set; }
public int Total { get; set; }
public int DiscountPercent { get; set; }
public int Discount { get; set; }
public int Payment { get; set; }
public int PaymentFromCash { get; set; }
public int PaymentFromWallet { get; set; }
public int Receive { get; set; }
public int Exchange { get; set; }
}
public class OrderDetail
{
public int ProductID { get; set; }
public string Code { get; set; }
public string ProductName { get; set; }
public int Quantity { get; set; }
public int Price { get; set; }
public int DiscountPercent { get; set; }
public int Total { get; set; }
public int Discount { get; set; }
public int Payment { get; set; }
public OrderDetail()
{
DiscountPercent = 0;
Total = 0;
Discount = 0;
Payment = 0;
}
}
public class CustomerInfo
{
public string CustomerName { get; set; }
public string Address { get; set; }
public string PhoneNumber { get; set; }
public string Email { get; set; }
}
这里是我的代码为反序列化:
var serializer = new XmlSerializer(typeof(Order));
Order order;
using (TextReader reader = new StreamReader(filePath))
{
order = (Order)serializer.Deserialize(reader); //the exception appears here
}
序列化的时候,我还使用一个字符串,不是日期时间。所以我认为这只是将字符串序列化为xml,并将其从xml反序列化为字符串。我不明白为什么发生异常......
什么是你的'Thread.CurrentThread.CurrentCulture'值? – haim770
无效的字符串格式在xml文件中从字符串解析到日期时间(7,6)。这是什么DateTime – mybirthname
如果你得到错误'异常,无效的字符串格式解析从字符串到日期时间'我是'110%'当然你使用日期时间数据类型..字段 –