visual-studio-2019 - 按类名、它们的属性等的顺序重新格式化一个大的 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
}
注意:属性,方法,字段的顺序无关紧要,只要在排序后它们总是以相同的顺序出现。
解决方案
是否有一种工具可以重新排序文件中的名称空间、类、它们的属性(字典或其他),以便两个自动生成的文件可以在文本上相互比较?
花了很长时间搜索它,我发现了这些:
1) Resharper 扩展及其 Greenkeeper 已经说明了这一点。
2) CodeMaid 扩展
但是我不确定这些扩展是否满足您的所有要求,如果这仍然不是您想要的,恐怕到目前为止还不支持您想要的。
我建议您可以在我们的用户语音论坛(DC)中发布功能请求----suggest a feature
分享您的想法。
此外,您可以在此线程中分享链接,包括我们在内的任何对此感兴趣的人都会投票以尽快引起微软的注意。
希望它可以帮助你。
推荐阅读
- meson-build - 介子:如何在介子中获得目标的名称
- pine-script - 如何在交叉/交叉的 Pine Script 中获得策略的真正价值?
- c# - 如何使用客户端 ID 和客户端密码在 C# .NET Framework 中使用 SharePoint Rest API?
- powerbi - PowerBI 中 Mapbox 的 Viz Settings 面板在哪里?
- android - 尝试访问 Google Fit API 的 Fitness.getHistoryClient 时,Android 应用出现故障
- c++ - QT - 无法使用 mouseMove 移动场景
- sed - 在 bash 中组合 sed 命令
- stata - destring 18 位数字返回舍入错误
- javascript - 如何在 ASP.NET MVC 中将 base64String 转换为 blob 并通过 ajax 发送到控制器?
- javascript - 在循环javascript中插入标签