Я использую OrmLite, и одно из моих сущностей имеет свойство типа Dictionary of DateTime и int, и оно не позволяет десериализовать это свойство. Я узнал, что это проблема сериализации Jsv. Я не прошел тест:Сериализатор ServiceStack Jsv не подходит для десериализации Словарь <DateTime, ___>
[Test]
public void Can_serialize_and_deserialize_Dictionary_with_DateTime_key()
{
JsConfig.DateHandler = JsonDateHandler.TimestampOffset;
var expected = new Dictionary<DateTime, int> {{DateTime.Now, 5}};
var serializedString = TypeSerializer.SerializeToString(expected);
var actual = TypeSerializer.DeserializeFromString<Dictionary<DateTime, int>>(serializedString);
Assert.AreEqual(actual.Keys.First().Year, expected.Keys.First().Year);
}
Может кто-нибудь предложить, как это можно исправить? Это похоже на проблему формата Jsv в целом, а не на ошибку реализации. (но я могу ошибаться)
Проблема заключается в том, что JSV не может десериализовать это {2013-11-19T16: 57: 33.7901057-05: 00: 5}. Слишком много двоеточий. Вот где он запутался. – kampsj
@kampsj Да. Вероятно, это ошибка в JSV-сериализаторе. Он забывает избежать этой даты с помощью "" –