I use Newtonsoft JSON to serialize/deserialize my objects. One of those contains an array with a protected setter because the constructor build the array itself and only the
Mark Outs with the [JsonProperty] attribute:
private class Engine
{
public string Text { get; set; }
public int Id { get; set; }
[JsonProperty] // Causes the protected setter to be called on deserialization.
public Coords[] Outs { get; protected set; }
public Engine()
{
this.Outs = new Coords[3];
for (int i = 0; i < this.Outs.Length; i++)
{
this.Outs[i] = new Coords();
}
}
}