No post anterior acabei usando um recurso disponível no C# 3.0 que ficou sem explicação.

O Automatic Properties.

public class Pessoa {
  public string Nome { get; set; }
  public string Email { get; set; }
}

Agora ao encontrar a declaração { get; set; }, o compilador gera automaticamente a variável privada e a implementação necessária para a propriedade.

Também é possível declarar uma propriedade como somente leitura usando o accessor private.

public class Pessoa {
  public int Id { get; private set; }
  public string Nome { get; set; }
  public string Email { get; set; }
}

E caso você precise usar atributos é necessário fazer a declaração da propriedade do modo tradicional.