簡體   English   中英

WCF / WPF DateTime返回null

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM