簡體   English   中英

C#代碼生成(Visual Studio模板或Resharper插件)

[英]C# code generation (visual studio template or resharper addin)

我想基於現有代碼生成一些C#代碼。 更確切地說,我需要一些用於現有枚舉的映射器以及它們的轉換器和單元測試。 為什么要生成此代碼而不是采用通用方法,這將是一個較長的討論,但是考慮到我想基於某些枚舉類型生成一些類,我將有哪些選擇? 我只是在考慮Visual Studio擴展,一些模板,或者可能是Resharper插件,但到目前為止,我還沒有做過類似的事情……對於那些曾經有過類似工作經驗的人,我將不勝感激。

ReSharper支持實時模板作為生成代碼的一種方式。 您可以在其中創建任何您喜歡的代碼,以及可編輯或鏈接的熱點,以提供自定義點(例如,當前文件名,類名,時間,新指南,建議的變量名等)。 您可以在現有文件中生成代碼段,圍繞現有代碼或創建新文件。 ReSharper 8還引入了對多文件模板的支持,一次創建多個文件。

但是,ReSharper的模板不支持循環之類的東西-例如,您不能循環XML文件並為每個元素生成一個類成員。 T4將是一個更好的解決方案。

Reegenerator支持從現有代碼生成代碼。 您可以創建一個代碼生成器,然后將其附加到包含枚舉類型的文件。 每次保存文件時都會執行生成器。 代碼生成器可以訪問Visual Studio DTE對象,它將通過CodeElement類(CodeClass,CodeAttribute等)為您提供代碼結構。 從那里,您可以通過類似T4的模板生成單獨的部分文件,也可以直接使用DTE EditPoint直接操作代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM