Предотвратить визуальную студию от ограничения метода сеттера до внутреннего

Ну, я использую visual studio 2015 CE, обновление 2. Один взлом производительности, который я обычно делаю, заключается в том, что я создаю пустые классы моделей, такие как:

public class PersonModel
{
}

а затем использовать их в выбранном выражении, например:

db.People.Where(p => someCondition)
.Select(p => new PersonModel
{
    Id = p.Id,
    Name = p.Name,
    //set other properties
}).ToList();

Затем я Control+. к еще несуществующим свойствам Id и Name ,... и нажмите Control+. попросить визуальную студию generate property Id для меня. Все отлично, но это создаст:

public int Id { get; internal set; }

и если я использую тот же метод в модели WebAPI asp.net связывание, связывание потерпит неудачу тихо и дать мне Id = 0.

Поэтому мой вопрос: есть ли какой-либо вариант попросить ВС создать публичный сеттер, то есть:

public int Id { get; set; }

Ответы

Ответ 1

Вы можете сделать это, набрав prop и дважды нажмите TAB. Это потребует, чтобы вы вводили тип и имя для свойства, но не извлекаете его из существующего.

С наилучшими пожеланиями.

Ответ 2

Поэтому мой вопрос: есть ли возможность попросить VS создать открытый сеттер, то есть:

Нет, нет способа изменить ярлык для автоматического добавления свойства с открытым набором. Несмотря на то, что ваш продуктивный хак аккуратен, лучше всего создать его самостоятельно.

Ответ 3

В Visual Studio 2017 все то же самое, и я использую тот же "взлом производительности".

Недавно я получил Resharper, и он использует публичный сеттер, как и следовало ожидать.