我在某个类中有一个静态字符串:
public static class SomeClass
{
public static string MyString = "Hello World";
}
在T4模板文件中,我想为条件目的调用该静态变量 为了生成SomeClass2。我认为会是这样的:
<# SomeClass.MyString #>
我尝试了多种方法,但似乎没有任何效果。我收到错误SomeClass.MyString不存在。怎么能实现呢?
答案 0 :(得分:0)
正如Daniel所发现的,你可能试图从T4模板中自我引用你从未构建的同一个项目,所以SomeClass不存在于(不存在的?)程序集中(如果你引用它)
您可以注释掉T4代码然后构建项目,然后您可以引用它
或者将您的“助手”放在不同的项目/组件中,您可以使用“T4组装指令”从T4项目中引用该项目/组件
或将您的助手放在T4模板
中public static class FooOrBar
{
public static string What { get { return " <#= MyHelpers.GetString(true) #> "; } }
}
<#+
public static class MyHelpers {
public static string GetString(bool what)
{
return what ? "foo" : "bar";
}
}
#>