4

T4テンプレートに関して次の質問があります。以下を含むSomeTemplate.ttを検討します。

<#@ template language="C#" #>
Today is  <#=  DateTime.Today.ToString() #>

これは次のように処理されます。

 SomeTemplatest st = new SomeTemplate(); 
 string  processedText = st.TransformText();

Q:そのテンプレートは既存のttではなく、データベースのどこかにあります。そのテンプレートを文字列としてどのように処理できますか?

4

1 に答える 1

2

あなたの質問に対する私のコメントにもかかわらず、どちらの場合も、Microsoft.VisualStudio.TextTemplating.Engineクラスのインスタンスを作成する必要があります。このクラスにはProcessTemplate(...)、文字列として変換されるテンプレート コードを渡すことができるメソッドがあります。

2 番目のパラメーターは、よりトリッキーかもしれません。これは、テンプレートを変換するためのコンテキスト情報と機能を提供するテンプレート ホストです。Visual Studio の TextTemplatingEngineHost を取得する方法があるかどうかはわかりません。

ただし、ビルド後のスタンドアロン バージョン (アプリケーション内でテンプレートを変換する場合など) では、カスタムのテキスト テンプレート ホストを作成する必要があります。これを行う方法のチュートリアルは、http: //msdn.microsoft.com/en-us/library/bb126579.aspxにあります。

于 2013-02-01T14:57:18.867 に答える