我有一個問題。我必須序列化一個對象,並且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