使用命名空间之外的 T4 模板位置
Posted
技术标签:
【中文标题】使用命名空间之外的 T4 模板位置【英文标题】:T4 Template place using outside of namespace 【发布时间】:2017-01-10 13:54:09 【问题描述】:我尝试使用 t4 模板引擎,但它自动在命名空间块内包含 using 指令。它找不到System
命名空间,因为它在我们自己的MyProject.System
命名空间设置的父命名空间内搜索。
文件夹/命名空间结构
我的文件夹 其他文件夹 系统模板文件
<#@ template language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<div>Test</div>
CS 文件
namespace MyProject.MyFolder.Templates
using System;
using System.Linq;
using System.Text;
using System.Collections.Generic;
错误
在
MyProject.System
中找不到命名空间Linq
。
问题
如何强制 t4 将 using 放在命名空间块之外?
【问题讨论】:
您能否包含创建该输出的模板? 我添加了它。现在我刚刚重命名了我们的System
命名空间,它解决了这个问题。
【参考方案1】:
您可以像这样以非相对方式引用System.Linq
;
using global::System.Linq;
如果这是一种有用的方法。
【讨论】:
c#代码是模板自己生成的。我刚刚重命名了我们的System
命名空间。
你试过<#@ import namespace="global::System" #>
吗?有兴趣知道它是否会起作用。以上是关于使用命名空间之外的 T4 模板位置的主要内容,如果未能解决你的问题,请参考以下文章