T4 не видит пространство имен

191
05 июля 2017, 23:52
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ import namespace="System" #>
<#@ output extension=".cs" #>
namespace TestApp
{
<#
    var type = Type.GetType("TestApp.MyClass", false);
    var typeName = type == null ? "Null" : type.Name;
#>
    public partial class <#= typeName #>
    {
        // ...
    }
}

В сгенерированный класс попадает Null
Подскажите почему не видит?

Answer 1

Потому что T4 бежит не в контексте вашего приложения, а в своём собственном. Соответственно в контексте выполнения T4 нету типа TestApp.MyClass, и Type.GetType не может найти его.

T4 — это не ваше приложение, это код, который создаёт текст вашего приложения.

READ ALSO
Binding элемента Combobox к строке в DataGrid WPF(Связь с БД по Entity Framework)

Binding элемента Combobox к строке в DataGrid WPF(Связь с БД по Entity Framework)

Столкнулся с такой проблемой, что не получается нормально прибайндить комбобокс к базе данныхИмеется код:

251
Как удалить дубликаты (string) с помощью C#?

Как удалить дубликаты (string) с помощью C#?

ЗдравствуйтеЕсть такой массив

257
Как добавить native dll в проект в Visual Studio 2012

Как добавить native dll в проект в Visual Studio 2012

Проект, написанный на языке C#Среда: Visual Studio 2012

277
Начальное значение Random() в C#

Начальное значение Random() в C#

Подскажите, пожалуйста, на что указывает и влияет начальное значение в объявлении нового объекта RandomДопустим 999, в нашем случае

258