2011-05-22 69 views
2

我需要在我的Web服務中發送一些關於時間+日期的信息。 所以我想使用DateTime。使用DateTime對象作爲DataMember?

我可以將DateTime定義爲DataMember嗎? 我嘗試將其定義爲datamember - 但我得到一個異常(災難性失敗)

+7

我只能說'幹得好!'。我一直使用.NET編程一段時間,並且經常沒有看到異常「災難性故障」! – 2011-05-22 06:57:17

+0

由於其他原因,這個異常不僅僅是因爲dateTime。 – Yanshof 2011-05-22 07:13:42

+2

是的。應該可以使用datetime作爲Web服務返回值或參數。 – 2011-05-22 07:19:50

回答

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(); 
    } 
}