gpt4 book ai didi

c# - T4 模板 - 读取给定文件路径的类文件

转载 作者:太空宇宙 更新时间:2023-11-03 21:34:23 24 4
gpt4 key购买 nike

我对 T4 模板比较陌生。我在 visual studio 2012 中工作并使用有形的 T4 编辑器。我在一个项目中有我的文本模板,我想在另一个项目中读取一个类并进行一些处理并将生成的代码写入第三个项目。我想将类文件路径传递给我的模板例如“C:/Code/Project2/ClassFooBar.cs”,模板将从给定位置读取类并对类属性进行一些处理并编写生成的代码到项目 3。我想传入文件路径,因为我的项目有许多类文件,并且没有我可以在模板中指定的模式。

我的解决方案结构是:

SolutionFoo:
- Project1
-TextTemplate.tt

- Project2
- ClassFooBar.cs

- Project3
-GeneratedCode.cs

任何人都可以指导我以一种干净的方式传递类路径以及一种将生成的代码写入 Project3 的方式吗?

最佳答案

为了避免文件锁定问题,或者如果您不想引用您的 Project2,请尝试我喜欢称之为“设计时反射”的方法。

由于您在同一个解决方案中有两个项目(一个包含 T4 和一个包含您要反射(reflect)的类),您可以使用 EnvDTE.CodeModel 来横向处理解决方案中的所有代码工件(命名空间、类、 ...) 而无需构建和引用 Project2。

看看 VisualStudio Automation .如果你使用 tangible's T4 Editor ,他们的图库中有一个免费的可重用模板,可以简化从 T4 模板中访问 EnvDTE.CodeModel 的过程。

这可能是一个很好的起点:http://t4-editor.tangible-engineering.com/blog/walking-the-visual-studio-code-model-with-t4-template.html

关于c# - T4 模板 - 读取给定文件路径的类文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22467142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com