【发布时间】:2010-10-06 04:11:52
【问题描述】:
我听说人们说不应使用代码生成器和 T4 模板。这背后的逻辑是,如果您使用生成器生成代码,那么通过泛型和模板构建代码会有更好更有效的方法。
虽然我稍微同意上面的这个说法,但我还没有真正找到有效的方法来构建可以说例如实例化自己的模板。换句话说,我永远做不到:
return new T();
此外,如果我想根据数据库值生成代码,我发现将 Microsoft.SqlServer.Management.SMO 与 T4 模板结合使用非常适合生成大量代码,而无需复制/粘贴或使用 resharper。
我也发现泛型的许多问题是,令我震惊的是,有很多开发人员不理解它们。当我为解决方案检查泛型时,有时它会变得复杂,因为 C# 声明你不能做一些在我看来似乎合乎逻辑的事情。
你的想法是什么?您更喜欢构建生成器,还是更喜欢使用泛型?另外,泛型能走多远?我对泛型有相当多的了解,但是我总是遇到一些陷阱和陷阱,这导致我求助于 T4 模板。
在需要大量灵活性的情况下,有什么更合适的方法来处理?哦,作为对这个问题的补充,关于 C# 和泛型的好资源是什么?
【问题讨论】:
-
评论我自己的帖子,Activator.CreateInstance
();解决了这个问题(有点)... -
泛型和 T4 模板有不同的用途...
标签: c# generics code-generation t4