You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* replace GeoJsonObject.Type by abstract read-only property
The Type now resolves to a constant enum value for each subclass. Benefits:
- allows to remove setter -> objects are more immutable now
- reduces memory footprint of each object by one string
- impossible to accidentally forget to set the Type in a subclass constructor
* make Point.Coordinates readonly & remove parameterless constructor
* Increase immutability of Polygon and LineString & avoid explicit List types
Both classes' coordinates field is read-only now and of IReadOnlyList<T> type instead of List<T>, which prevents manipulation after creation.
For this to work, additional constructors were introduced that take nested double enumerables as in the GeoJSON spec.
* Rename Converters & extend previous work to more classes
The previous converter names were highly misleading because e.g. PolygonConverter did NOT read/write Polygon object but instead only the Coordinates property of a Polygon.
* Make MultiPoint & MultiPolygon immutable and improve corresponding converters
* Make Position formally immutable (and smaller in memory)
* Various small code style and documentation improvements
* Let Feature<TGeometry> derive from Feature<TGeometry, TProps>
Avoids duplication of code.
* Streamline the style of JSON converters
* Remove unused (and, from its XML doc, probably very old) ParsingException class
* Position.cs: remove redundant null checks & remove misleading comment
* Add missing and fix existing XML docs.
* Fix for net35 target: replace IReadOnlyList by ReadOnlyCollection
0 commit comments