Visual Studio 2012為T4增添依賴注入與調試特性
Visual Studio 2012 為 Visual Studio T4 系統增加了不少新功能,亮點包括為部署指令處理器添加 MEF 支持以及簡化調試。
指令處理器用于向 T4 模板注入代碼和提供外部數據。在過去,開發和部署指令處理器非常單調乏味;而現在,借助 VS 2012 與 MEF,整個過程變得非常簡單。開始這項工作首先需要實現 IDirectiveProcessor 接口。雖然具體細節還不清楚,但不出意外的話,DirectiveProcessor 與 SupportedDirective 特性將會處理所有困難的工作。
預處理模板(Preprocessed Template)被更名為“設計時模板(Design-time template)”。這里為不了解預處理模板的讀者稍微介紹一下:預處理模板是一個 T4 模板,它被編譯進一個普通的 .NET 程序集中。一旦這步完成,它就會脫離在 Visual Studio 的依賴,從而可以被其他應用程序調用。
借助 Visual Studio 2012,開發人員可以通過指令處理器為代表預處理模板的類添加自定義特性。一個特定的使用案例是為模板類添加 MEF 輸出。
你還可以使用@template 指令改變模板類的可見性。
為了解決 Visual Studio 與 COM 之間糟糕的交互問題,新的 ServiceProviderExtensions. GetCOMService 函數可以用于取代普通的 GetService 桉樹。這只在當“使用特定宿主模板訪問 VS 服務”時需要。
最后一個增加到 T4 中的特性是簡化模板調試。在過去,你需要添加調試指令以及調試器調用;而現在,你只需要在你的 T4 模板中設置一個斷點,右擊文件,即可開始調試。
查看英文原文:Dependency Injection, Debugging added to T4 for Visual Studio 2012