Я использую следующий код для преобразования некоторого Json в динамический объект. Когда я использую DateTime.Parse в свойстве моего динамического типа, я бы ожидал, что var угадает, что он тип DateTime... вместо этого он остается динамическим. Это может быть неправильно, не так ли?
Полный пример ниже.
var settings = new JavaScriptSerializer().Deserialize<dynamic>(json);
var startDate = DateTime.Parse(settings.startDate);
var endDate = DateTime.Parse(settings.endDate);
var userId = int.Parse(settings.userId);
startDate, endDate и userId все еще динамические, что означает, что я не могу использовать их в более поздних выражениях лямбда. Очевидно, я могу исправить код с помощью:
DateTime startDate = DateTime.Parse(settings.startDate);
DateTime endDate = DateTime.Parse(settings.endDate);
int userId = int.Parse(settings.userId);
.. но похоже, что компилятор делает "плохое предположение". Может кто-нибудь объяснить это мне?
Спасибо