T4混淆

3
我认为我理解了T4的基本原则,但是我很难弄清楚如何将其应用到我的特定情况中。
我有一个应用程序,显示某种对象的列表 - 不管是什么。我想允许用户选择其中1个或多个对象,并将它们提交给任何模板。例如,模板可以生成描述对象的html文件或用于以某种方式操作它们的powershell脚本等。
我无法弄清楚的问题是如何将所选对象传递到我的自定义主机中。
我可以创建一个广泛的tt包含文件,调用自己的api从存储中检索这些对象,但当我已经在范围内拥有对象的实例并且只想检查它们以产生一些文本输出时,这似乎很愚蠢。
我希望这有意义...
我尝试添加属性到我的主机,然后使用hostspecific设置,我认为我可以通过这些属性使用对象,但我得到的只是关于序列化等错误的错误信息。
一个真正好的示例将是太棒了 :)
谢谢
1个回答

2
也许这篇文章能够回答你的问题。"独立模板"可能是最好的设计选项。其他选项包括环境变量和外部文件。但是,我希望你决定不要使用自定义主机(除非你想拥有自己独特的T4风格,很可能与其他任何T4主机不兼容),而是使用TextTransform.exe。

我以为我已经读完了你的圣经,但我错过了那个。啤酒已经邮寄了。干杯! - Jonesie
它运行了!耶哈!我的主机使用CallContext来设置逻辑数据,然后在模板中我有:<#@ template language="C#" #> <#@ output extension=".ps1" #> <#@ import namespace="System.Runtime.Remoting.Messaging" #><#= Service.Url #><#+ Service Service { get { return CallContext.LogicalGetData("Service") as Service; } } #>我的自定义主机添加了与Service和其他内容相关的导入。 - Jonesie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接