【问题标题】:Integrating DSLs with T4, and indicating script errors将 DSL 与 T4 集成,并指示脚本错误
【发布时间】:2011-03-07 07:41:04
【问题描述】:

每个人。我有一个高级 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 文件本身?

非常感谢,

史蒂夫·库珀。

【问题讨论】:

    标签: visual-studio code-generation t4


    【解决方案1】:

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

    【讨论】:

    • 完美运行!我被抛出是因为 Errors 是受保护的,所以如果你有一个 TextTransformation 变量,intellisense 不建议这样做。我只需要 (A) 创建一个 TextTransformation 的抽象子类——在我的例子中,我称之为 SqlTextTransformation——并且 (B) 告诉 TT 文件使用像
    猜你喜欢
    • 2023-03-27
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    • 2016-06-21
    • 2010-09-23
    • 2016-08-04
    相关资源
    最近更新 更多