在T4代码生成中,如何从引用的程序集中获取类型?

时间:2012-02-16 19:46:05

标签: c# t4

由于T4在项目的上下文之外运行,因此我无权访问当前程序集或其他程序集。如何注册对引用的程序集的访问权限,然后从中获取类型?

2 个答案:

答案 0 :(得分:3)

我猜你想要在你的项目中访问你的建筑物。我在下面的示例代码中所做的是在我的解决方案中添加一个名为TestLib的项目,我将其构建到解决方案目录中的文件夹。\ T4Libs。 TestLib有一个名为MyHelper的类,它包含一个幻数。

FYI VS2010 SP1增加了一项很棒的功能,因为它不再锁定导入的程序集,因此这是一个很好的版本。

<#@ assembly   name        = "$(SolutionDir)\T4Libs\TestLib.dll"  #>
<#@ import     namespace   = "TestLib"                            #>

<#
   var myHelper = new MyHelper ();
#>

// <#=myHelper.MagicNumber#>

答案 1 :(得分:0)

您是在寻找Assembly directive和/或是否正在寻找System.Reflection.Assembly类中的内容(如LoadFile)?