Как я могу покинуть MessagePack от JSON (через Python) с свойством DateTime?C#

Место общения программистов C#
Ответить
Anonymous
 Как я могу покинуть MessagePack от JSON (через Python) с свойством DateTime?

Сообщение Anonymous »

Я пытаюсь десериализовать сообщение об отправке сообщения, сгенерированное от клиента Python к объекту .NET. Столкнуться с некоторыми проблемами с Datetimes. Интересно, что оставаясь на арене C#, это тоже не работает. < /p>

Newtonsoft может правильно десериализировать JSON. Хотя Tojson's MessagePack возвращает действительный json, дезиализация объекта не удается. < /P>

Код: Выделить всё

[DataContract]
public class TestClass
{
[DataMember]
public string TestPropertyA { get; set; }
[DataMember]
public string TestPropertyB { get; set; }
[DataMember]

public DateTime EventTimeStamp { get; set; }
}

//Move from Json string to an object
String jsonStringFromPython = "{\"TestPropertyA\":\"Hello\",\"TestPropertyB\":\"World\",\"EventTimeStamp\":\"2019-05-02T16:04:30.7812850Z\"}";
TestClass anObject = JsonConvert.DeserializeObject(jsonStringFromPython);

//Generate byte arrays for Messagepack
Byte[] arrFromAString = MessagePackSerializer.FromJson(jsonStringFromPython);
Byte[] arrFromAnObj = MessagePackSerializer.Serialize(anObject);
CompositeResolver.RegisterAndSetAsDefault(PrimitiveObjectResolver.Instance, ContractlessStandardResolver.Instance);

//Message pack understands the object-generated byte array
var backtoobject = MessagePackSerializer.Deserialize(arrFromAnObj);

//Message pack DOES NOT UNDERSTAND the string-generated byte array and fails with code is invalid. code:188 format:fixstr'
var backtoobject2 = MessagePackSerializer.Deserialize(arrFromAString);
Последняя строка кода, выше, не удается, но все работает безупречно, если я отброшу свойство DateTime из строки/объекта.

Подробнее здесь: https://stackoverflow.com/questions/559 ... me-propert
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»