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