【问题标题】:Automatically extract classes from a generated file从生成的文件中自动提取类
【发布时间】:2013-10-14 06:42:27
【问题描述】:

我有一个生成的文件包含多个类,我想将这些类拆分为多个文件,每个文件只包含一个类。 代码在c#中

是否有可以做到这一点的程序(最好有可用的源代码)?有没有可以提取类/接口的简单正则表达式?

【问题讨论】:

  • 看看那个问题:它使用正则表达式来捕获定义良好的 C# 类 正则表达式来查找 C# 类和方法名称
  • 如果您在 Visual Studio 中清理 C# 项目,您可以使用 ReSharper:右键单击项目并在菜单上选择 Refactor => Move Types进入匹配文件..._.
  • @RamiHelmy 链接在哪里?
  • 对不起,这里是:stackoverflow.com/questions/7593136/…

标签: c# regex


【解决方案1】:

我不相信Regex 会是解析 C# 代码的正确策略。它可能适用于一些简单的情况,但您可能会遇到一些欺骗您的情况。以代码中有一些注释不平衡'{' 为例。 我建议您调查这个其他 SO 问题:Parser for C# about how to parse c# code。

【讨论】:

  • 如果你正确理解语言(包括评论),正则表达式就可以了。你认为编译器词法分析器是如何工作的?
  • @Gusdor lexer 只是编译的一个步骤。想想为什么在sharpdevelop中他们使用解析器而不是普通的正则表达式来进行智能感知。
  • 我试图理解的是它是可能的,因为该语言具有定义的结构。正则表达式只是一个解析脚本。它一次一个字符地工作,而不是逐行工作。
【解决方案2】:

如果这是一次性的,做最少的(快速)有效的事情。因此,如果它只是一个或几个文件并且您不是非常通用的解决方案,我会识别所有标题(public class Foo 等),例如在 Notepad++ 和录制的宏的帮助下,手动更正结果,然后我会编写一个小 C# 程序来将文件拆分到这些标题所在的位置

【讨论】:

    【解决方案3】:

    我认为你应该试试Visual Studio Macro Programming

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-25
      • 2021-04-16
      • 2022-11-15
      • 1970-01-01
      • 2011-08-19
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多