Существует ли resharper, комментирует директива для отключения очистки кода для класса?

У меня есть класс, где FileHelpers зависит от полевого порядка в этом файле класса. Если файл класса когда-нибудь добирается, код моются выполненный против него, который заставит поля быть отсортированными в алфавитном порядке и невидимо разрушит мой класс.

Так как я хотел бы избежать этого от когда-нибудь случайного появления, есть ли resharper, комментирует директива для отключения очистки кода для класса?

14
задан Chris Marisic 9 July 2010 в 17:02
поделиться

2 ответа

Вы можете настроить XML-файл макета элемента по умолчанию и указать шаблон, который вы хотите игнорировать на этапе «переупорядочить элементы» при очистке кода.

Взгляните на раздел Тип элемента в настройках Resharper. Вы можете видеть, что уже есть два исключения, определенные для COM-интерфейсов и структур с StructLayoutAttribute :

 <!--Do not reorder COM interfaces-->
  <Pattern>
    <Match>
      <And Weight="100">
        <Kind Is="interface"/>
        <HasAttribute 
           CLRName="System.Runtime.InteropServices.InterfaceTypeAttribute"/>
      </And>
    </Match>
  </Pattern>

<!--Do not reorder when StructLayoutAttribute is set -->
  <Pattern>
    <Match>
      <And Weight="100">
     <Or>
        <Kind Is="struct"/>
        <Kind Is="class"/>
     </Or>
        <HasAttribute 
           CLRName="System.Runtime.InteropServices.StructLayoutAttribute"/>
      </And>
    </Match>
  </Pattern>

Вы можете легко создать свой собственный IgnoreTypeMemberReorderingAttribute и добавить небольшой раздел в XML-файл. что проверить против него.

12
ответ дан 1 December 2019 в 12:12
поделиться

Я считаю, что Resharper соблюдает атрибут [StructLayout(LayoutKind.Sequential)].

Обновление: Я думаю, что на момент написания статьи это работало для классов, но в текущей версии Resharper (10), похоже, это применимо только к структурам, а не классам. Так что это, вероятно, все еще полезно во многих ситуациях взаимодействия, но не является общим способом удержания порядка любого класса.

10
ответ дан 1 December 2019 в 12:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: