<#+#>括弧で宣言された非静的メソッドからホストオブジェクトにアクセスしようとすると、すべて正常に機能します。しかし、私はこのように、クラスメソッドからアクセスする必要があります。T4クラスからホストオブジェクトにアクセス
<#+
public class ProjectTraverser
{
public void Traverse()
{
var a = Host;
}
}
#>
このテンプレートが実行されたとき、私は次のエラーを取得する:を「変革のコンパイル:「アウタータイプの非静的メンバにアクセスすることはできませんMicrosoft.VisualStudio Microsoft.VisualStudio.TextTemplating7D03DF372FEAC3D3A28C011A41F02403.GeneratedTextTransformation.ProjectTraverser 'D「のネストされたタイプ' を介して.TextTemplating7D03DF372FEAC3D3A28C011A41F02403.GeneratedTextTransformation:プロジェクト\ \テストソリューション\たGettingStarted \ TelerikMvc3RazorApplication \ TextTemplate2.tt」
は、任意のアイデアを共有してください。
それはそれは言うまったく同じである(アウタータイプの非静的メンバにアクセスすることはできません)しかし、あなたはProjectTraverserにコンストラクタでホストを渡すことができます。 – FuleSnabel
あなたのコメントFuleSnabelに感謝します。カプセル化の最高レベルではありませんが、解決策です。 – Narek