DataContract и пользовательский набор / получить, чтобы установить DateTime из строки - PullRequest
4 голосов
/ 29 февраля 2012

Мне нужно проанализировать данные JSON с сервера и составить список объектов.

Я использую DataContract для связи между полями словаря json и свойствами класса, однако у меня есть проблема: одно из этих полей содержит дату в строке from (что-то вроде "2011-01-01 15: 00 UTC "); Я хочу поместить это в свойство DateTime.

Как я могу преобразовать эту строку в datetime и передать ей свойство автоматически, используя DataContract? это возможно?

Ответы [ 2 ]

7 голосов
/ 29 февраля 2012

Вы можете использовать свойство для цели:

[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;}
0 голосов
/ 03 октября 2017

Поместите атрибут DataMember в поле вместо свойства и используйте метод установки / получения, чтобы выполнить преобразование:

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