问题标签 [t4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
12 回答
1479 浏览

t4 - 领域特定语言资源

我只是在听一些较老的 .Net Rocks!剧集,我发现 DSL 上的 #329很有趣。我的问题是我无法为尝试学习这项技术的人们找到任何好的在线资源。我了解了创建新设计师的基础知识,但是缺少有关 DSL 工具使用的 T4 引擎的 MS 文档,以及如何将模板与 DSL 模型集成。

有谁知道 MS DSL 工具的一些好的介绍性资源?

0 投票
2 回答
673 浏览

.net - 在构建服务器上运行 T4 模板时 System.Xml.Linq.XDocument 上的 TypeLoadException

我在构建服务器上使用 TextTransform.exe 运行 T4 模板时遇到问题。在我的开发机器上,模板完美运行。错误信息如下。

错误:运行转换:System.TypeLoadException:无法实例化类型 System.Xml.Linq.XDocument

构建服务器上有 Windows 2008 SDK,我的机器有 VS 2008。我认为它可能找不到 System.Data.Xml,所以我确保 dll 存在于同一目录中,但没有运气。有任何想法吗?

0 投票
5 回答
303 浏览

c# - 具有 valueTypes 字段和装箱的类

我正在尝试使用泛型,并且正在尝试创建类似于 Dataset 类的结构。
我有以下代码

我遇到的问题是,当我添加新列时,我还需要在 HasChanges 属性和 AcceptChanges() 方法中添加它。这只是要求进行一些重构。
所以我想到的第一个解决方案是这样的:

正如您从评论中看到的那样,我们在结构克隆方面几乎没有问题。对此的简单解决方案是将 Column 更改为类,但从我的测试来看,它似乎将内存使用量增加了约 40%(因为每个对象元数据),这对我来说是不可接受的。

所以我的问题是:有没有人有任何其他想法如何创建可以在不同结构化对象/记录上工作的方法?也许 F# 社区的某个人可以建议如何用函数式语言解决这些问题,以及它如何影响性能和内存使用。

编辑:
sfg 感谢有关宏的建议。
在 Visual Studio 2008 中有一个内置的(但不为人知的)模板引擎,称为 T4。重点是将“.tt”文件添加到我的项目中并创建一个模板,该模板将搜索我的所有类,以某种方式识别记录的那些(例如通过它们实现的某些接口)并使用 HasChanges 和 AcceptChanges 生成部分类( ) 将只调用类包含的列。

一些有用的链接:
VS
博客的 T4 编辑器,包含有关 T4 博客条目的链接和教程,
以及使用 EnvDTE 读取项目文件的示例

0 投票
3 回答
435 浏览

.net - 构建服务器上缺少 T4 模板目录

我刚刚使用 Windows 2008 .NET 3.5 SDK 设置了一个新的构建服务器,由于某种原因它没有安装 c:\Program Files\Common Files\Microsoft Shared\TextTemplating 所以我不能运行 t4 模板它。我查看了添加/删除程序中的安装选项,并检查了每个选项。

任何想法为什么它丢失?任何想法如何取回它?

0 投票
2 回答
520 浏览

t4 - 如何在 T4 ClassBlock 方法中使用模板?

我开始研究 T4 的代码生成。

我知道你有一个基本模板,你可以在其中嵌入小块 c#/vb 可以执行聪明的东西......

这很棒..但是我希望能够编写我的主要块......

然后我希望能够让 WriteX 方法存在于类块中,但它们本身可以使用示例代码写入,即转义代码块。

我怎样才能做到这一点?

0 投票
6 回答
603 浏览

t4 - T4(微软的文本模板框架)有什么好的资源吗?

什么都会好的。示例、最佳实践、示例等

0 投票
1 回答
928 浏览

visual-studio-2008 - VS 上的 T4 错误。编译转换:'Write' 不是成员

我正在尝试在 VS2008 的 T4 模板中使用一个类。

这是我正在做的简化版本...

当我运行此模板时...我收到以下错误...


错误 1 ​​编译转换:“Write”不是“Microsoft.VisualStudio.TextTemplatingF77BDE667ECAD297F587D3D651053846”的成员。GeneratedTextTransformation.SomeClass'。D:\Development\PrivateProjects\CodeGeneration\CodeGeneration\Generation\Common\test2.tt 16 1 CodeGeneration

谁能告诉我为什么这会导致错误,更重要的是如何否定它的影响?

0 投票
2 回答
1098 浏览

web-services - 有没有人有任何可用于生成 Web 服务的 T4 示例模板?

有没有人有任何可用于生成 Web 服务的 T4 示例模板(或相同的链接)?

我在想这样一个事实,我猜 Webservice 不仅是 Vb 或 Cs 字段,而且还需要一个适当的 asmx 文件。

我真的不确定如何实现这一目标

0 投票
1 回答
9654 浏览

linq - 如何在 T4 模板中使用 Linq?

我正在使用 T4 为项目生成一些屏幕和中间层代码,并希望使用 Linq 来简化我的一些模板代码。但是,当我尝试使用 Linq 时,模板会报告语法错误。

0 投票
4 回答
1383 浏览

c# - 如何将任意文件的依赖项添加到 T4 模板?

我有一个从 xml 文件生成类的 T4 模板。

如何在 xml 文件和模板文件之间添加依赖关系,以便在修改 xml 文件时自动重新运行模板,而无需从上下文菜单中选择“运行自定义工具”?