Я пытаюсь отладить следующий файл шаблона T4, используя VS2010 professional, windows 7.
Но отладчик не выделяет строку «Правильно» в файле: «Texttemplate2.tt»
Файл 1: File1.tt
<#@ template debug="true" hostspecific="true" language="C#" #>
<#@ include file="Texttemplate2.tt" #>
<#
System.Diagnostics.Debugger.Launch();
int a= 10;
Write("ASS");
GetProperty("User","UserName");
#>
Файл: Texttemplate2.tt
<#@ template debug="true" hostspecific="true" language="C#" #>
<#@ assembly name="System.Xml" #>
<#@ import namespace="System.Xml" #>
<#@ import namespace="System.IO" #>
<#+
public void Load()
{
string doc=null;
if(doc == null)
{
string templateDirectory = Path.GetDirectoryName(Host.TemplateFile);
string absolutePath = Path.Combine(templateDirectory,"../../App_Data/EntityUI_MetaData_Appsettings.xml");
}
}
public string GetProperty(string Entity, string prop)
{
Load();
string node="none";
if (node != "0" )
{
if (node == Entity )
{
return node;
}
}
return null;
}
#>
Позвольте мне объяснить вопрос подробно. Я создал два вышеупомянутых файла шаблона T4. Теперь я хочу отладить код моего файла шаблона T4 «File1.tt» (не сгенерированный код). что я сделал я запустил отладчик с
System.Diagnostics.Debugger.Launch();
и установить контрольные точки
int a= 10;
. Нажатие клавиши F5 привело к достижению моей точки останова.
int a= 10;
теперь он выделен ЖЕЛТЫМ ЦВЕТОМ как ЗАДНЯЯ ЧАСТЬ и ЖЕЛТЫЙ СТРЕЛКОЙ, как в ЛЕВОМ. после этого нажмите F11, пока не достигнете
GetProperty
когда этот метод вызывается там, вы заметите, что ЖЕЛТАЯ СТРЕЛКА означает, что текущий исполняемый оператор не выделен.
Имейте в виду, предположим, что строка: 20 является следующим оператором выполнения, отладчик выделяет строку: 10 в texttemplatefile2.tt