2015-11-18 3 views
12

Если я использую функцию Resharper код очистки, я нахожу, что мой код ...Как остановить ReSharper переключаясь между Enumerable.ToList и Выбрать предложение

var personInfos = persons.Select(Mapper.Map<PersonInfo>).ToList(); 

изменяется на ...

var personInfos = Enumerable.ToList(persons.Select(Mapper.Map<PersonInfo>)); 

Но Resharper делает предложение «для метода расширения вызова» для Enumerable.ToList поэтому код восходит к ...

var personInfos = persons.Select(Mapper.Map<PersonInfo>).ToList(); 

Я проверил параметры редактирования кода Resharper, но я не вижу, где/как я могу остановить это поведение переключения.

ответ

3

Я думаю @Matthias может быть правильным

Я обновлен до текущей Resharper, т.е. 2016.1.2 и попробовал код ...

var personInfos = persons.Select(Mapper.Map<PersonInfo>).ToList(); 

Resharper больше не предлагает предложение

и @ Vlad274 это с моим кодом очистки Optimise 'using' directives и Shorten qualified references оба все еще проверили

0

Чтобы исправить это, вам необходимо создать собственный профиль очистки. Ниже приведены две настройки, которые необходимо отключить.

Settings

По умолчанию полная очистка имеет обе настройки включен. Если какая-либо настройка включена, очистка сделает этот переключатель.

+4

Если это действительно так, это звучит как ошибка для меня, и вы должны сообщить об этом https://youtrack.jetbrains.com. Эти два варианта явно не отвечают за замену между вызовом static и invocation. У меня есть оба параметра, и обычный вызов, подобный экземпляру, сохраняется. – Matthias

0

В качестве альтернативы обновлению и, возможно, более общему решению:

В меню проверки кода вы должны иметь инспекцию «Преобразовать вызов статического метода ...» есть опция «Настройка серьезности проверки». Здесь вы сможете выбрать: не показывать.

Работает лучше всего, если вы сохраните эти настройки в общем файле настроек, чтобы все работающие над этим решением обменивались этим параметром автоматически.

Смежные вопросы