Как предоставить TimeSpan через службу данных WCF? - PullRequest
4 голосов
/ 08 апреля 2011

Я создаю Службу данных WCF для своей базы данных встреч.

Я сохраняю встречу как DateTime с продолжительностью типа TimeSpan. Когда я пытаюсь получить доступ к моей службе данных, я получаю следующую ошибку:

"Сервер обнаружил ошибку при обработке запроса. Сообщение об исключении:« Свойство «Продолжительность» для типа «Назначение» имеет тип «Время», который не является поддерживаемым типом примитива. »Дополнительные сведения см. В журналах сервера. . "

Есть идеи, как я могу представить продолжительность и сделать ее доступной через службу данных WCF?

Ответы [ 2 ]

6 голосов
/ 08 апреля 2011

Я бы предложил выставить новое свойство для сериализации (помеченное DataMemberAttribute), которое использует свойство Ticks вашего исходного промежутка времени.

Например:

[DataMember("TheTimeSpanTicks")]
public long TheTimeSpanTicks
{
    get { return TheTimeSpan.Ticks; }
    set { TheTimeSpan = new TimeSpan(value); }
} 

Я не уверен, каковы требования к аксессору для сериализации.Может быть, вы могли бы использовать protected вместо public.

0 голосов
/ 08 апреля 2011

Вы можете выставить длительность в виде Тиков, Всего секунд или другого примитива, который можно рассчитать в часах, минутах и ​​т. Д.?

...