是否有resharper comment指令禁用类的代码清理?

Chr*_*sic 14 c# resharper

我有一个类,其中FileHelpers依赖于此类文件中的字段顺序.如果类文件有一个代码清理运行它将导致字段按字母顺序排序并且无形地破坏我的类.

既然我想避免意外发生这种情况,是否有一个resharper comment指令来禁用类的代码清理?

Rom*_*ier 12

您可以自定义默认成员布局XML文件,并在代码清理的"重新排序成员"步骤中指定要忽略的模式.

查看Resharper设置下的" 类型成员布局"部分.您可以看到已经为COM接口和Structs定义了两个例外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>
Run Code Online (Sandbox Code Playgroud)

您可以轻松地创建自己的,IgnoreTypeMemberReorderingAttribute并在XML文件中添加一个小部分来检查它.


Wil*_*ean 10

我相信Resharper会观察[StructLayout(LayoutKind.Sequential)]属性.

更新:我认为这在编写本课时适用于类,但在当前版本的Resharper(10)中,它似乎只适用于结构,而不适用于类.所以它在许多互操作情况下可能仍然有用,但不是保持任何类的顺序的一般方法.