BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Visual Studio 2012为T4增添依赖注入与调试特性

| 作者 Jonathan Allen 关注 594 他的粉丝 ,译者 曹如进 关注 0 他的粉丝 发布于 2012年6月12日. 估计阅读时间: 2 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

Visual Studio 2012为Visual Studio T4系统增加了不少新功能,亮点包括为部署指令处理器添加MEF支持以及简化调试。

指令处理器用于向T4模板注入代码和提供外部数据。在过去,开发和部署指令处理器非常单调乏味;而现在,借助VS 2012与MEF,整个过程变得非常简单。开始这项工作首先需要实现IDirectiveProcessor接口。虽然具体细节还不清楚,但不出意外的话,DirectiveProcessorSupportedDirective特性将会处理所有困难的工作。

预处理模板(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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT