BT

依存性注入とデバッグ機能が T4 に追加された Visual Studio 2012

| 作者: Jonathan Allen フォローする 530 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2012年6月12日. 推定読書時間: 2 分 |

原文(投稿日:2012/06/08)へのリンク

Visual Studio 2012 の T4 機能には数多くの改善が加えられている。中でも注目すべきなのはディレクティブプロセッサ展開時の MEF のサポート,デバッグの容易化の2つだ。

ディレクティブプロセッサは,T4 テンプレートにコードの挿入や,あるいは外部データの設定を行うために使用する。ディレクティブプロセッサの開発と展開は,従来はかなり退屈な作業だった。それが VS 2012 と MEF によってより簡単になり,IDirectiveProcessor インターフェースを実装すればよくなる。詳細はまだ明らかになっていないが,DirectiveProcessorSupportedDirective という2つの属性が,力仕事の部分を肩代わりしてくれるようだ。

プリプロセス・テンプレート (Preprocessed Templates) は "デザインタイム・テンプレート (Design-time Template)" という名称に変更された。プリプロセス・テンプレートを知らない人のために説明すると,通常の .NET アセンブリにコンパイルされる T4 テンプレートのことである。コンパイルによって Visual Studio への依存性がなくなるため,他のアプリケーションからもコールが可能になる。

Visual Studio 2012 では,プリプロセステンプレートから生成したクラスに対して,ディレクティブプロセッサを通じて独自の属性を追加することができる。MEF のエクスポートのテンプレートへの追加を用途として想定したものだ。

@template ディレクティブを使用して,テンプレートクラスの可視性を変更することも可能である。

Visual Studio と COM の不都合な相互作用に対処するには,通常の GetService 関数に代えて,新たに用意された ServiceProviderExtensions.GetComService 関数を使用しなければならない。これが必要になるのは,"ホスト固有のテンプレートを使って VS サービスにアクセス" する場合のみである。

最後に紹介する追加機能は テンプレートデバッグの簡略化 である。従来 デバッグディレクティブと Debugger コール の追加が必要だったものが簡略化されて,ファイルを右クリックして T4 テンプレートにブレークポイントを設定すれば,直ちにデバッグが開始できるようになる。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT