Mam aplikację AngularJS + MVC 5 + Web API 2, która pozwala użytkownikom zarządzać kolekcjami obiektów w przeglądarce i zatwierdzać wszystkie zmiany naraz po kliknięciu przycisku Zapisz. W miarę wprowadzania zmian do obiektów JavaScript jest dodawana jedna lub więcej właściwości: IsAdded, IsUpdated, IsRemoved. Właściwości są sprawdzane po stronie serwera, aby określić, co zrobić, gdy model zostanie utrzymany.Czy mogę polecić Json.NET, aby deserializować, ale nie szeregować, konkretnych właściwości?
Model serwowane jest przy użyciu Json.NET poprzez Web API, a klasa bazowa jest:
public class CollectionItemViewModel : ICollectionItem
{
public bool IsAdded { get; set; }
public bool IsUpdated { get; set; }
public bool IsRemoved { get; set; }
}
Działa to doskonale, ale dodaje do mojego cruft serializowanym JSON. Mogę zdecydować, aby nie serializować tych trzech właściwości za pomocą ShouldSerialize, ale to również zapobiega ich deserializacji.
public bool ShouldSerializeIsAdded()
{
return false;
}
public bool ShouldSerializeIsUpdated()
{
return false;
}
public bool ShouldSerializeIsRemoved()
{
return false;
}
Czy można deserializować, ale nie szeregować określonych właściwości za pomocą Json.NET?
Powinno się używać Serializacji * w sposób absolutnie nie wpływający na deserializację. Czy jesteś tego absolutnie pewien? Ponieważ to byłby poważny błąd. –