What is the difference between a property with a omitted setter and a property with a private setter?
public string Foo { get; private set; }
In C# 6, get; only properties are only settable from the constructor. From everywhere else, it is read-only.
get;
A property with a private set; can be set from everywhere inside that class.
private set;