Вот тест:MassTransit баловаться с моими строковыми данными
var bus = ServiceBusFactory.New(c =>
{
c.DisablePerformanceCounters();
c.UseRabbitMq();
c.ReceiveFrom("rabbitmq://localhost/qqq");
});
bus.SubscribeHandler((Order o) => Console.WriteLine(o.Date));
bus.Publish(new Order
{
Date = "1994-11-05T13:15:30Z"
});
Вот мой класс Order (Date свойство строкового типа!):
public class Order
{
public string Date { get; set; }
}
Я ожидал, что содержание Даты быть отображается, но вот фактический результат:
11/05/1994 13:15:30
Итак, MassTransit просто пытается конвертировать каждую строку, которую он получил в Dat eTime, а затем отформатировать его так, как он хочет, или что?
UPD: Использование XmlSerializer вместо Json не решило проблему. Вот часть послания, которое я видел в RabbitMQ:
<date>1994-11-05T13:15:30Z</date>
И сообщение, которое я получил в приложении изменяется таким же образом снова:
11/05/1994 13:15:30
UPD2: Я проверил сериалайзер (Json.NET):
var panda = new Panda
{
Birthday = "1994-11-05T13:15:30Z"
};
Console.Out.WriteLine(JsonConvert.DeserializeObject<Panda>(JsonConvert.SerializeObject(panda)).Birthday);
Вывод представляет собой строку «как есть», поэтому кажется, что проблема не в сериализаторе.
«Свойство даты имеет строковый тип» - Почему? –
Предположим, что это данные, полученные мной из внешнего источника, и я хотел бы проанализировать его на типизированный объект через некоторое время. Однако это не относится к моему вопросу. – vorou
Я думаю, вы найдете, что это связано .... –