我目前正在使用T4模板,我注意到有时代码没有正确缩进,我该如何避免这种情况?
例如,我在模板中有这个代码
}
<# } #>
this.cmbDecisionList.Dat = dataSource;
this.btnDec.Enabled = dataSource.Count > 0;
}
在生成的类中,它就像
}
this.cmbDecisionList.Dat = dataSource;
this.btnDec.Enabled = dataSource.Count > 0;
}
请允许我用点替换空格来说明您的问题。
}
....<# } #>
....this.cmbDecisionList.Dat = dataSource;
this.btnDec.Enabled = dataSource.Count > 0;
}
在生成的类中,它就像
}
........this.cmbDecisionList.Dat = dataSource;
this.btnDec.Enabled = dataSource.Count > 0;
}
现在,让我们去掉前面的点。
}
<# } #>
....this.cmbDecisionList.Dat = dataSource;
this.btnDec.Enabled = dataSource.Count > 0;
}
在生成的类中,它就像
}
....this.cmbDecisionList.Dat = dataSource;
this.btnDec.Enabled = dataSource.Count > 0;
}
我认为您努力获得可读的生成代码是件好事。我们偶尔会坐下来试着调试生成的代码,所以如果它看起来很容易,那就很好了(因为我们从不编辑生成的代码)。
我采用了一种模式,在这种模式中,我可能会牺牲模板的一些可读性来获得生成的代码的可读性。
Generated code
<#
T4 statements
#>
Generated code
IE#>总是出现在换行符之后,并且换行符会立即添加。
然后您的代码将被更改为:
}
<#
}
#>
this.cmbDecisionList.Dat = dataSource;
this.btnDec.Enabled = dataSource.Count > 0;
}
这样,生成的代码往往会按预期进行格式化。
这可能不是保留预期格式的唯一方法,但这是我使用的方法。
希望这能有所帮助。