将DSL与T4集成,并指示脚本错误

时间:2010-06-23 13:03:47

标签: visual-studio code-generation t4

大家。我有一个高级T4问题,我希望有人可以提供帮助。

我创建了一个类似SQL的DSL,脚本保存在我的C#项目中的'.satsql'文件中,就像这样;

// contents of myqueries.satsql
SELECT <column t1.Id> FROM <table mytable t1>

我有一个.tt文件加载文件并尝试解析它。如果失败,我想在Visual Studio错误列表中添加一个错误,就像这样;

myqueries.satsql (1,8) error: unknown column 'xid' on table 't3'.
myqueries.satsql (2,9) error: bad reference: pid.

当用户点击错误时,VS应该打开'myqueries.satsql'文件,并将光标指向适当的行和字符,就像它对C#错误一样。

T4已经提供了void TextTransform.Error(string)方法,但这似乎没有让我有机会像C#错误那样设置文件,行和字符。

有没有人知道T4文件在另一个文件中报告错误的方法 - 而不是T4文件本身?

非常感谢,

史蒂夫库珀。

1 个答案:

答案 0 :(得分:1)

您可以使用TextTransformation.Errors集合报告文件和行号信息的错误。