从另一个类获取静态值

时间:2014-04-06 14:38:47

标签: c# .net t4

我在某个类中有一个静态字符串:

public static class SomeClass
{
    public static string MyString = "Hello World";
}

在T4模板文件中,我想为条件目的调用该静态变量 为了生成SomeClass2。我认为会是这样的:

<# SomeClass.MyString #>

我尝试了多种方法,但似乎没有任何效果。我收到错误SomeClass.MyString不存在。怎么能实现呢?

1 个答案:

答案 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";
    }
}
#>