从另一个类获取静态值
本文关键字:静态 获取 另一个 | 更新日期: 2023-09-27 17:57:11
>我在某个类中有一个静态字符串:
public static class SomeClass
{
public static string MyString = "Hello World";
}
在 T4 模板文件中,我想出于条件目的调用该静态变量为了生成 SomeClass2。我以为会是这样的:
<# SomeClass.MyString #>
我尝试了多种方法,但似乎没有任何效果。我收到错误SomeClass.MyString不存在。如何做到这一点?
正如 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";
}
}
#>