UPDATEZnalazłem problem - odziedziczyłem po złej klasie, musiał być JsonConverter.niestandardowy serializer dla tylko jednej właściwości w Json.NET
Mam klasy, która ma właściwość Location typu System.Data.Entity.Spatial.DbGeography. Domyślną Json.NET serializer gasi tekst JSON tak:
...
"PlaceType": 0,
"Location": {
"Geography": {
"CoordinateSystemId": 4326,
"WellKnownText": "POINT (-88.00000 44.00000)"
}
},
"AddedDT": null,
...
chcę go zgasić tekst tak:
...
"PlaceType": 0,
"Location": [-88.00000,44.00000],
"AddedDT": null,
...
... więc wydaje mi się, co należy zrobić, by nadpisać, który konwerter jest aktualnie używany w typie DbGeography.
Przykłady, które dotychczas widziałem używające CustomCreationConverters i ContractResolvers wydają się odnosić do sposobu zastąpienia serializera dla głównej klasy serializowanej, a nie dla typu, który jest tylko właściwością tej klasy. Przykłady, które dotyczą opisywania klasy, która jest nadpisywana, nie działają dla mnie, ponieważ nie definiuję DbGeography w moim kodzie i jest to skutecznie zamknięta klasa, ponieważ nie ma ona konstruktora i może być utworzona tylko za pomocą metod fabrycznych internal
.
Czy istnieje sposób na płynne zastosowanie JsonConvertera? Jeśli tak, jak wyglądałby konwerter? Czy po prostu przesłonię metodę WriteJson()?
OK, muszę poczekać dwa dni, aby oznaczyć moje własne pytanie jako udzielone? Czy więc ludzie będą musieli patrzeć na to tak, jakbym wciąż czekał na odpowiedź? Kusiło, aby usunąć całą rzecz. –
Lepiej to zostawić - inni mogą skorzystać z tego, czego się nauczyłeś. Postąpiłeś słusznie, aktualizując pytanie, by powiedzieć, że zostało to rozwiązane w międzyczasie. –