DataContract和自定义set / get从字符串设置DateTime

时间:2012-02-29 13:28:21

标签: c# datacontract

我需要从服务器解析JSON数据并制作一个对象的列表。

我正在使用DataContract以便在json字典字段和类属性之间建立关联,但是我遇到了一个问题:其中一个字段包含字符串中的日期(类似于“2011-01-01 15: 00 UTC“);我想把它放在DateTime属性中。

如何将此字符串转换为日期时间并使用DataContract自动将其传递给该属性?那可能吗?

2 个答案:

答案 0 :(得分:7)

您可以将属性用于此目的:

[DataMember(Name="Foo")]
public string FormattedFoo {
    get { return /* apply some custom formatting to 'Foo' */; }
    set { Foo = /* apply some custom parsing to 'value' */; }
}
public DateTime Foo {get;set;}

答案 1 :(得分:0)

DataMember属性放在字段而不是属性上,并使用setter / getter进行转换:

const string DATE_TIME_FORMAT = "<your format>";

[DataMember]
string myDate;

public DateTime MyDate {
  get 
  {
    return DateTime.ParseExact(myDate, DATE_TIME_FORMAT, CultureInfo.CurrentCulture);
  }
  set 
  {
    myDate = value.ToString(DATE_TIME_FORMAT);
  }
}