【问题标题】:Are there any visual studio template tools can generate source codes base on other source codes?是否有任何 Visual Studio 模板工具可以根据其他源代码生成源代码?
【发布时间】:2013-12-05 04:53:31
【问题描述】:

出于以下原因,我必须编写很多辅助类:

//original class
public class Class1{
    public Class1(int p1,int p2){}
}
public class Class2{
    public Class2(int p3,int p4,int p5){}
}
//helper class
public static Helper{
    public static Class1(int p1,int p2){}
    public static Class2(int p3,int p4,int p5){}
}

我需要在设计时自动生成这些助手,所以我认为我需要一个需要这些功能的工具:

  • 在设计时编写模板。
  • 模板变量可以在设计时基于源代码中存在的类(意味着它们未编译为汇编)。
  • 可以在源代码(分类)更改或文件保存时自动生成。

有没有类似的工具?

顺便说一句:是否有任何工具可以在设计时查询类?就像我想找到没有子类时没有密封的类。

【问题讨论】:

    标签: visual-studio templates


    【解决方案1】:

    您可能需要考虑Roslyn。我在使用 Roslyn 之前rewrote classes,但仅作为实验,在类中注入属性。为了让它工作,我必须编写一个控制台应用程序,因为当时 Visual Studio 2010 不允许轻松集成。由于代码变化不大,手动运行也没问题。

    您可以根据自己的情况对其进行调整。

    【讨论】:

    • 非常感谢,这正是我要找的
    【解决方案2】:

    也许这有帮助(T4 模板)? http://msdn.microsoft.com/en-us/library/bb126445.aspx

    或者有一种纯手动的方式来使用反射 http://www.codeproject.com/Articles/19513/Dynamic-But-Fast-The-Tale-of-Three-Monkeys-A-Wolf

    但我敢打赌这不是你真正想要的方式。

    【讨论】:

    • 我知道T4模板,但是它可能只有编译后才能获取元数据。我正在寻找一个可以在设计时从源代码中读取元数据的模板工具(如NDepend,可以查询类时)在visual studio使用CQL编码)。如果这种工具不存在,也许从编译的程序集中反映是最好的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-22
    • 2012-01-05
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多