C#源文件合并

时间:2013-11-26 11:57:57

标签: c# .net code-generation thrift

我使用生成c#源代码(thrift)的工具,每种类型一个文件。我想将所有类型合并到一个可编译的源文件中。我说可编译因为简单地连接每个文件中的文本将产生一个不能编译到布局的文件,例如多个使用块。

是否有一个命令行工具可以执行此操作,或者我是否需要创建一个,如果是,我应该查看哪些库。

=======编辑======

没有找到任何东西并且没有为thrift编译器源做出贡献,所以我把它搞砸了,这就是诀窍:https://github.com/myles-mcdonnell/SourceMeld

现在我可以在VS中添加两个预构建步骤,一个用于生成源文件的exe thrift,两个用于合并到一个文件(包含在项目中的文件),并且我在开发时有一个无缝构建过程。

1 个答案:

答案 0 :(得分:4)

如果您以智能方式编写源文件,则可以连接源文件。

看,这不起作用:

using External.Name.Space;
namespace My.Name.Space
{
    ...
}

using External.Name.Space;
namespace My.Name.Space
{
    ...
}

但这样做:

namespace My.Name.Space
{
    using External.Name.Space;

    ...
}

namespace My.Name.Space
{
    using External.Name.Space;

    ...
}

这两个符号大部分功能相同(详见“Should Usings be inside or outside the namespace”)。

像ReSharper这样的工具可以通过几次点击将所有源文件从第一种表示法转换为第二种表示法(即使免费试用版也可以这样做)。

编辑:

我忘了你正在使用代码生成器。然后你有这些选择:

  1. 更改Thrift的模板(我不熟悉该工具,但我希望它有某种模板)。
  2. 编写一个工具,用于从命名空间的外部移动使用。这应该是一个Regex.Replace调用。
  3. 编写一个工具,读取连接文件并将所有使用内容移至顶部。同样,这应该非常简单。