Por que não podemos usar campos públicos para ligação de dados em c #?

Estou ciente das vantagens de usar propriedades sobre os campos, como poder fornecer lógica adicional quando necessário no futuro.

Mas eu realmente me pergunto por que não é possível usar campos públicos para ligação de dados ou mesmo para serializadores JSON como a classe JavaScriptSerializer.

Existe algum bom motivo para ignorar campos públicos nesses casos? Ou é apenas algum tipo de convenção? Ou apenas para forçar os usuários a usar propriedades?

questionAnswers(3)

yourAnswerToTheQuestion