2012-04-29 126 views
0

我已經寫了很多輔助類的像下面的一些原因:是否有任何視覺工作室模板工具可以基於其他源代碼生成源代碼?

//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){} 
} 

我需要自動生成這些助手在設計時,所以我想我需要一個工具,需要這些功能:

  • 模板在設計時寫入。
  • 模板變量可以在設計時基於源代碼中的存在類(意味着它們沒有被編譯爲Assembly)。
  • 當源代碼(分類)發生變化或文件保存時可以自動生成。

有沒有類似的工具?

順便說一句:有什麼工具可以在設計時查詢類?就像我想找到沒有密封的類時,他們沒有子類。

回答

0

你可能要考慮Roslyn。 I rewrote classes在使用Roslyn之前,只是作爲一個實驗,在類中注入屬性。爲了使它工作,我必須編寫一個控制檯應用程序,因爲Visual Studio 2010當時不允許輕鬆集成。由於代碼變化不大,因此手動運行並不是問題。

您可以根據自己的情況對其進行調整。

+0

非常感謝,這就是我要找的 – 2012-06-27 06:06:51

0

也許這有助於(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

純手工方式,但我敢肯定,這是不是你真正想要的方式。

+0

我知道T4模板,但它可能只在編譯後得到元數據。我正在尋找一個模板工具,可以在設計時從源代碼讀取元數據(例如NDepend,可以在Visual Studio中編碼時使用查詢類CQL)。如果這種工具不存在,也許從編譯彙編反映是最好的方法。 – 2012-04-29 12:17:51

相關問題