В С# свойства анонимных типов доступны только для чтения:
var person = new { Surname = "Smith", OtherNames = "John" };
person.Surname = "Johnson"; // ERROR: .Surname is read-only
Конечно, я могу объявить реальный класс, если я хочу записывать поля или свойства, но независимо от того, что является причиной этого дизайнерского решения, чтобы сделать свойства доступными только для чтения?