使用DateTime对象作为DataMember?

时间:2011-05-22 06:54:25

标签: wcf

我需要在我的网络服务中发送一些有关时间+日期的信息。 所以我想使用DateTime。

我可以将DateTime定义为DataMember吗? 我尝试将其定义为datamember - 但我得到了一个例外(灾难性的失败)

1 个答案:

答案 0 :(得分:1)

创建新的WCFDate类,此类以设置格式输出字符串,这样可以根据需要轻松读取。然后用WCFDate替换所有Ur DateTimes。

public class WCFDate
{
public static string DateTimeFormat = "yyyy-MM-dd hh:mm:ss zz";

public string Data { get; set; }

public WCFDate() { }

public WCFDate(string data)
{
    Data = data;
}

public WCFDate(DateTime date)
{
    Data = date.ToString(DateTimeFormat);
}

public WCFDate(DateTime? date)
{
    if (date.HasValue)
    {
        Data = date.Value.ToString(DateTimeFormat);
    }
}

public bool HasDate
{
    get
    {
        return !string.IsNullOrWhiteSpace(Data);
    }
}

public DateTime GetDate()
{
    try
    {
        return DateTime.ParseExact(Data, DateTimeFormat, CultureInfo.CurrentCulture);
    }
    catch
    {
        return new DateTime();
    }
}