2016-09-02 4 views
3

Я пытаюсь использовать движок шаблона t4, но он автоматически включает директиву using внутри блока пространства имен. Он не может найти пространство имен System, поскольку он ищет в родительском пространстве имен, где установлено собственное пространство имен MyProject.System.T4 Размещение шаблона за пределами пространства имен

Структура папок/имен

  • MyFolder
  • OtherFolder
  • Система

Файл шаблона

<#@ 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; 
} 

Ошибка

пространство имен Linq не может быть найден в MyProject.System.

Вопрос

Как заставить t4 поставить, используя внешний блок пространства имен?

+0

Можете ли вы включить шаблон, который создает этот вывод? – rmc00

+0

Я добавил. На данный момент я просто переименовал наше пространство имен System, которое решило проблему. – djmj

ответ

0

Вы можете ссылаться на System.Linq таким образом, как это;

using global::System.Linq; 

В случае, если это полезный подход.

+0

Код C# генерируется самим шаблоном. Я просто переименовал пространство имен 'System'. – djmj

+0

Пробовал ли вы '<# @ import namespace =" global :: System "#>'? Заинтересован знать, сработает ли это. –

 Смежные вопросы

  • Нет связанных вопросов^_^