[英]WCF/WPF DateTime returning null
我有一個正在調用WCF服務的WPF應用程序。 在WCF服務中,我調用數據庫並返回一些項目,其中包括日期時間。
這是我返回數據的方式。
List<MessageData> messages = new List<MessageData>();
//sql stuff
while (reader.Read())
{
MessageData message = new MessageData();
message.ID = (Guid)reader["message_id"];
message.Description = reader["subject"].ToString();
messageData.IssuedDate = reader["issued_date"].ToString();
message.Severity = reader["severity"].ToString();
message.Specialty =reader["specialty"].ToString();
messages.Add(message);
}
在MessageData中,我已將IssuedDate指定為DateTime和字符串。 逐步調試器我看到實際的DateTime被放置在IssuedDate中。 回到WPF應用程序時,IssuredDate為null,並且該值丟失。
WPF方面
List<CWeb.MessageData> data = new CWeb.SCClient().GetMessages(messageData, Global.Token).ToList();
有什么提示嗎? 我猜它在序列化/反序列化中丟失了嗎?
更新當我將一個隨機單詞分配給IssuedDate時,它是一個字符串,例如:“為什么不工作”,它回來了,因為該字符串不拒絕以日期時間格式返回任何內容。
可能是您的合同不符嗎? 客戶端可能希望DateTime
服務在其中提供String
嗎?
WCF非常有能力在數據協定中返回DateTime
。 因此, MessageData.IssuedDate
應該為DateTime
,您可以使用類似的方法從數據讀取器中獲取它:
message.IssuedDate = reader["issued_date"] as DateTime? : DateTime.MinValue;
我注意到的IssuedDate
件事: IssuedDate
屬性是您未在message
對象中設置的唯一屬性,而是messageData
對象。 您確定使用的對象正確嗎?
另外,在將DateTime
返回為字符串時,應將其轉換為可以可靠轉換的某種國際格式,例如ToString("yyyyMMdd HH:mm:ss")
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.