C# WCF/WPF日期时间返回null

C# WCF/WPF日期时间返回null,c#,wpf,wcf,datetime,C#,Wpf,Wcf,Datetime,我有一个WPF应用程序正在调用WCF服务。在WCF服务中,我调用数据库并返回一些项目,其中包括datetime 下面是我如何返回数据的 List<MessageData> messages = new List<MessageData>(); //sql stuff while (reader.Read()) { MessageData message = new MessageData(); message.ID = (Guid)reader["mes

我有一个WPF应用程序正在调用WCF服务。在WCF服务中,我调用数据库并返回一些项目,其中包括datetime

下面是我如何返回数据的

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);
}
List messages=newlist();
//sql材料
while(reader.Read())
{
MessageData message=newmessagedata();
message.ID=(Guid)读取器[“message_ID”];
message.Description=reader[“subject”].ToString();
messageData.IssuedDate=读卡器[“发布日期”].ToString();
message.Severity=reader[“Severity”].ToString();
message.speciality=reader[“speciality”].ToString();
消息。添加(消息);
}
在MessageData中,我将IssuedDate指定为日期时间和字符串。 在调试程序中,我看到一个实际的日期时间被放置在IssuedDate中。 当它返回到WPF应用程序时,IssuedDate为null,并且该值丢失

WPF侧

List<CWeb.MessageData> data = new CWeb.SCClient().GetMessages(messageData, Global.Token).ToList();
List data=new CWeb.SCClient().GetMessages(messageData,Global.Token).ToList();
有什么提示吗?我猜它在序列化/反序列化中丢失了

更新 当我将随机词指定给IssuedDate(当它是字符串时),例如:“why you no work”
返回时,字符串未拒绝以日期时间格式返回任何内容。

可能是您的合同不匹配吗?可能客户端需要一个
DateTime
,其中服务提供
字符串

WCF能够在数据契约中返回
DateTime
。因此
MessageData.IssuedDate
应该是
DateTime
,您可以使用类似的方法从数据读取器获取它:

message.IssuedDate = reader["issued_date"] as DateTime? : DateTime.MinValue;
我还注意到一件事:
IssuedDate
属性是在
message
对象中唯一没有设置的属性,而是
messageData
对象。您确定使用的对象正确吗


此外,当以字符串形式返回
DateTime
时,您应该将其转换为某种国际格式,您可以将其可靠地转换回,例如
ToString(“yyyyMMdd HH:mm:ss”)

您可以在UI端覆盖从WCF服务检索到的值,也可以在WCF端本身覆盖,进一步到这个代码?在退出读卡器后,返回消息,这样它就不会在WCF端被覆盖。在包含列表的WPF端数据上,所有IssuedDate都为空。