使用模板T4生成.xaml和.xaml.cs文件

3

我是T4模板的新手,我想从T4生成.xaml文件,并从.xml文件中提取一些信息。所以我的问题是:是否可以从T4生成.xaml文件以及所有的MVVM基础结构?是否可以从T4模板文件中调用和生成不同的文件?

选择T4模板作为生成WPF屏幕的最佳方式吗?如果不是,我们如何快速生成通用屏幕?

1个回答

4

我看到了5个问题:

  1. 是否可以从T4生成.xaml文件和所有的MVVM基础设施?
  2. 是否可以从T4模板文件中调用不同的文件?
  3. 是否可以从T4模板文件中生成不同的文件?
  4. 选择T4模板来生成wpf屏幕是否是最好的方式?
  5. 如果不是,我们如何快速生成通用屏幕?

以下是我的答案:

  1. 是的,我认为T4非常适合生成MVVM通常需要的样板代码。
  2. 是的,如果你的意思是希望拥有一个可以重复使用的模板库。在T4中获得代码重用的机制要么是普通程序集引用,要么是<#@ include #>指令(与PHP或ASP中的包含非常相似)。
  3. 是的,但我建议你不要这样做。尝试这样做会使模板变得更加复杂,并且你应该问自己为什么要为不同的生成类有不同的文件。在某些情况下,您可能需要有单独的文件(即C#和XAML必须存在于不同的文件中),但我会建议使用两个具有不同<#@ output #>指令的模板文件。
  4. 我不理解这个问题,也许您可以详细说明一下?
  5. 听起来LightSwitch可能对您有用。您仍然可以使用T4生成所需的屏幕模型片段。
总之,如果您正在寻找关于如何使用T4的好资源,请访问Oleg Sych's blog它非常优秀

1
T4工具箱(http://t4toolbox.codeplex.com)非常好地回答了第三个问题,并给出了完全相反的答案 - 它旨在专门允许您生成多个工件。它的主要作者是Oleg Sych。 - GalacticCowboy
2
@GalacticComboy - 我确实可以看出,在某些情况下,您希望每个模板有多个工件,但是在我看来,即使手写代码的推荐模式是每个类生成一个工件,我也不认为这很有价值。 依我之见,适用于生成和手写代码的好模式并不总是重叠的。 - Just another metaprogrammer
对于LightSwitch的推荐点赞。听起来它非常适合你的场景,值得评估。 - GarethJ
1
GalacticCowboy提到了T4 Toolbox(https://github.com/olegsych/T4Toolbox)的新位置。 - uli78

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