我有一个问题。我必须序列化一个对象,并且SAM对象被转换为XML,但它是一个日期时间对象。序列化对象日期/时间
好,我有填充有数据从一些SQL查询字符串变量,像这样
// DateDeliveryRequest
if (rw_mat["dat_pot"].ToString().Length <= 0)
{
date_req = "";
}
else
{
date_req = rw_mat["dat_pot"].ToString();
}
现在,date_req正在passet反对这样的:
var dtfi = new DateTimeFormatInfo { ShortDatePattern = "dd-MM-yyyy", DateSeparator = "-" };
Agr3PL.DataArea.Header.DateDeliveryRequest = Convert.ToDateTime(date_req, dtfi);
最后,这个对象与其他被传递给序列化函数:
private string SerializeAnObject(object obj)
{
System.Xml.XmlDocument doc = new XmlDocument();
System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(obj.GetType());
System.IO.MemoryStream stream = new System.IO.MemoryStream();
try
{
serializer.Serialize(stream, obj);
stream.Position = 0;
doc.Load(stream);
return doc.InnerXml;
}
catch (Exception ex)
{
WriteErrors.WriteToLogFile("WS.SAVE_DOK_SERIJALIZACIJA", ex.ToString());
throw ex;
}
所以我想日期时间变量,以XML,但我不这样做,XML已经到这个样子(这仅仅是一个段)
- <Header>
<MessageType>COR</MessageType>
<UniqueHeaderNumber />
<UniqueHeaderNumberFromWMS />
<CompanyCode />
<OrderNumber />
<InvoiceNumber />
<MovementNumber />
<ReceiptNumber />
<DebitNoteNumber />
<PickNoteNumber />
<LoadNumber />
<DropSequence />
<BulkPickNoteNumber />
<NumberOfPallets />
<DateDeliveryRequest />
但问题是,XML是不显示节点> DateDeliveryRequest它不存在 我没有得到错误,只是没有节点> DateDeliveryRequest ???
我不知道是序列化函数还是别的什么问题,也许在格式化日期或其他东西?
可以显示Agr3PL.DataArea.Header类吗? – Reniuz 2012-04-27 12:06:44
这是来自哪里的部分inhirited [System.Xml.Serialization.XmlElementAttribute(DataType =“date”)] public System.DateTime DateDeliveryRequest { get { return this.dateDeliveryRequestField; } set { this.dateDeliveryRequestField = value; } } – CrBruno 2012-04-27 12:15:33
在调试时你能否看到DateDeliveryRequest是真正设置的?也许你需要尝试DateTime.Parse(),而不是Convert.ToDateTime() – Reniuz 2012-04-27 12:25:33