Resharper 9文件布局:按访问修饰符排序时无法定义排序顺序?

cob*_*cob 5 c# resharper resharper-9.0

安装R#9.0后,我的8.2自定义文件布局不再起作用了.我使用9.0中的新版布局设计器重新创建了相同的模式.

我无法重现的部分是使用访问修饰符的属性的详细排序定义:

9.0之前看起来像这样:

[...]
<Sort>
    <Access Order="private public internal protected-internal protected"/>
</Sort>
[...]
Run Code Online (Sandbox Code Playgroud)

...导致属性按定义排序 - 特别是:private首先!

在9.0中使用新的Designer时,生成的XAML如下:

[...]
<Entry.SortBy>
    <Access />
</Entry.SortBy>
[...]
Run Code Online (Sandbox Code Playgroud)

...仍然通过访问修饰符对成员进行排序,但使用了一些默认的排序规范.设计人员不允许指定任何其他属性并手动编辑XAML,因为在9.0之前会产生错误.

是否有R·9.0任何办法控制的顺序public,private等成员也是这样吗?

顺便说一句.对于其他排序规范存在相同的问题,例如Kind:不再可能指定例如property应该method等等.

cob*_*cob 5

事实证明,顺序仍然可以像 9.0 之前的版本一样指定 - 但语法略有不同:

[...]
<Entry.SortBy>
    <Access Order="private public internal protectedinternal protected"/>
</Entry.SortBy>
[...]
Run Code Online (Sandbox Code Playgroud)

不同的是protected-internal现在必须是protectedinternal......

另请注意,您必须在 XAML 视图中手动执行此操作,因为可视布局设计器尚不支持此设置。(但它会检测您编辑中的错误 - 因此请务必在 XAML 和设计器视图之间来回切换,以检查是否破坏了任何内容)。

对于关于类型的第二部分:它们也可以排序。这是我的疏忽。

编辑: 整个条目如下所示:

<Entry DisplayName="non-private Fields">
  <Entry.Match>
    <And>
      <Kind Is="Field" />
      <Not>
        <Access Is="Private" />
      </Not>
    </And>
  </Entry.Match>
  <Entry.SortBy>
    <Access Order="Public Internal ProtectedInternal Protected Private" />
    <Name Is="Enter Pattern Here" />
  </Entry.SortBy>
</Entry>
Run Code Online (Sandbox Code Playgroud)