Это проблема конфигурации моего приложения WebAPI.
Когда я передаю эту дату как JSON из моего проекта Angular в мой проект WebAPI, она выглядит следующим образом: created: "2019-01-09T16:16:06.149Z"
После прохождения десериализации в WebAPI это выглядит следующим образом:
ОБНОВЛЕНИЕ: Первоначально я скептически относился к тому, что это JSON.Net. Но, посмотрев более внимательно на мои модели, я понял, что IS - это JSON.Net. У меня есть базовый класс, который содержит мои «Созданные», «Обновленные» поля. Адрес наследует этот класс. Домашний адрес наследует адрес. Это должно быть слишком много для JSON.Net. Когда я удалил Inheritance из базового класса и поместил свои созданные и обновленные члены в HomeAddress. Это сработало! Таким образом, этот вопрос действительно относится к способности JSON.Net объединять унаследованные члены, полученные из базового класса.
WebAPIConfig.cs (без настройки JSON.Net для дат) :
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{...}
}
Контроллер WebAPI :
[RoutePrefix("parents")]
public class ParentsController : ApiController
{
[HttpPost]
[Route("update")]
public bool UpdateParentInfo(Parent parent)
{
// when I inspect parent.Homeaddress.Created I get the DateTime().Min
}
}
HomeAddress.cs, вложенный в Parent.cs :
public class Parent
{
[JsonProperty("parentID")]
public Guid ParentID { get; set; }
[JsonProperty("homeAddress")]
public Address HomeAddress { get; set; }
public Parent()
{
this.HomeAddress = new HomeAddress();
}
}
HomeAddress.cs
public class HomeAddress: Address
{
public HomeAddress(){}
}
Address.cs
public class Address: Base
{
[JsonProperty("addressID")]
[Key]
public Guid AddressID { get; set; }
[JsonProperty("street1")]
public string Street1 { get; set; }
[JsonProperty("city")]
public string City { get; set; }
[JsonProperty("state")]
public string State { get; set; }
[JsonProperty("zip")]
public string Zip { get; set; }
}
Base.cs
public class Base
{
[JsonProperty("created")]
public DateTime Created { get; set; }
}
Эта дата находится во вложенном объекте.
Может ли JSON.Net обнаруживать унаследованные члены - это глубоко? Спасибо за помощь.
Мой короткий ответ: Нет. И я убегаю от абстракции так быстро, как могу набрать. Я помещаю свои созданные / обновленные члены в класс HomeAddress. И называя это днем.