Предоставление значений DateTime в Odata

Я в настоящее время пишу специальное клиентское приложение, чтобы позволить нашим модульным тестам работать с интерфейсом ODATA, используя структуру XML для кормов Atom. Все, кажется, работает должным образом, но я бегу в беду, когда мне нужно пройти значение DateTime в качестве свойства.

Я написал следующий код, который извлекает значение TATETIME из свойства объекта и сохраняет его в определенном формате:

private static void GenerateProperty(StringBuilder xml, T obj, PropertyInfo info)
        {
            // Extract the information about the property if it contains a value.
            if (info.GetValue(obj, null) == null) return;
            string type = info.GetGetMethod().ReturnType.ToString().Split('.').Last();
            string value = info.GetValue(obj, null).ToString();
            if (type == "DateTime")
                value = ((DateTime)info.GetValue(obj, null)).ToString("yyyy-mm-ddThh:mm:ss");
            if (type == "Boolean") value = value.ToLower();

            // Append the property to the generated XML.
            xml.Append(type.ToLower().Equals("string") ? 
                    string.Format("{1}", info.Name, value) : 
                    string.Format("{2}", info.Name, type, value));
        }

код тяжелый на отражении, но это по точке. Значения, возвращаемые этим кодом для TATETIME, находятся в следующем формате: 2011-49-13T11: 49: 41Z

Однако я получаю следующую ошибку из службы ODATA:

Запрос обработки ошибок транслировать. Ошибка, встречающаяся при преобразовании значения полезной нагрузки запроса для имущества «создано» на тип «System.DateTime», которая является Ожидаемый тип недвижимости. Смотрите внутреннее исключение для более деталь. Строка '2011-49-13T11: 49: 41Z' не является действительным ALLXSD ценить. System.formatexception. в System.xml.xmlconvert.todateTime (строка s, XmldateTimeerializationMode DateTimeOption) в System.data.services.parsing.webconvert.stringtopritivity (текст строки, Введите targettype) в System.data.services.serializers.plainxmldeserializer.ConvertValuesforxml (объект Значение, String PropertyName, тип Type FypeTobeConverted)

Так, очевидно, он не понимает формат datetime, но когда я смотрю на документацию, которая размещена здесь: http://www.odata.org/developers/protocols/ Обзор # Абпрентаетепесистема

Я ожидаю, что это будет действительным. У кого-нибудь есть какой-то опыт с этим?

10
задан codingbunny 13 September 2011 в 09:57
поделиться