我有一个T4 C#文件,我需要在静态类中引用一个常量。静态类位于同一名称空间中。
这可能吗?
下面仅仅是一个例子。我需要根据现有常量计算实际常量,但也需要调用扩展方法。为了简单起见,我只是在说明这个概念。
.cs文件:
namespace me
{
public static class Stat
{
public const int Const = 1;
}
}
。 tt文件:
...
namespace me
{
public static int Test
{
return <#= Stat.Const #>;
}
}
答案 0 :(得分:4)
确实有可能。但是你需要先做几件事:
<#@ assembly name="$(TargetPath)" #>
<#@ import namespace="ns" #>
应该这样做。棘手的一点是意识到你的.tt不像你项目中的任何旧类文件那样工作。因为它是生成的,所以需要生成一些东西,在这种情况下,你必须预先生成你的项目dll。
正如所承诺的那样,here is the blog post I wrote about this question:)