首页 > 解决方案 > 按类名、它们的属性等的顺序重新格式化一个大的 C# 文件(需要它来保持自动生成的文件保持相同的顺序)

问题描述

我尝试了格式化文档,但这只是美化了代码,是否有一种工具可以重新排序文件中的名称空间、类、它们的属性(字典顺序或其他方式),以便两个自动生成的文件可以在文本上相互比较?

人工生成的文件在一个文件中只有一个类,或者当同一个文件中有许多类时它们是分层的,因此无需诉诸类的顺序及其属性,但是有没有工具可以重新格式化和按类名、字段、属性、方法名和签名排序文件?

最初的问题是更新 WCF 服务,将类移动到 Reference.cs 文件中。

编辑:要重现只需更新 WCF 服务并观察完全并列的 Reference.cs 文件,类在文件中上下移动。尝试以独特的方式对大型自动生成的 C# 文件进行排序以启用文本比较,同时结构与原始代码保持同构。

编辑2:具体示例代码假设文件如下(伪代码)

Namespace S2
{
   Class C2
   Method M2
   Property P2
   Constructor CTOR2
   Field F2
   Method M1
   Property P1
   Field F1
   Constructor CTOR1
}

Namespace S1
{
   Class C1
   Method M2
   Property P2
   Constructor CTOR2
   Field F2
   Method M1
   Property P1
   Field F1
   Constructor CTOR1
}

然后在排序格式化之后

Namespace S1
{
   Class C1
   Constructor CTOR1
   Constructor CTOR2
   Field F1
   Field F2
   Property P1
   Property P2
   Method M1
   Method M2
}

Namespace S2
{
   Class C2
   Constructor CTOR1
   Constructor CTOR2
   Field F1
   Field F2
   Property P1
   Property P2
   Method M1
   Method M2
}

注意:属性,方法,字段的顺序无关紧要,只要在排序后它们总是以相同的顺序出现。

标签: visual-studio-2019visual-studio-extensions

解决方案


是否有一种工具可以重新排序文件中的名称空间、类、它们的属性(字典或其他),以便两个自动生成的文件可以在文本上相互比较?

花了很长时间搜索它,我发现了这些:

1) Resharper 扩展及其 Greenkeeper 已经说明了这一点

2) CodeMaid 扩展

但是我不确定这些扩展是否满足您的所有要求,如果这仍然不是您想要的,恐怕到目前为止还不支持您想要的。

我建议您可以在我们的用户语音论坛(DC)中发布功能请求----suggest a feature分享您的想法。

此外,您可以在此线程中分享链接,包括我们在内的任何对此感兴趣的人都会投票以尽快引起微软的注意。

希望它可以帮助你。


推荐阅读