1
1
我猜你对马丁·福勒的DSL书很熟悉,但如果不一定要看的话。它不包含任何特定于C 4.0的内容,但具有一些内部DSL的通用模式,您可以使用这些模式。另外,看看C中的泛型类型和类型推断是如何工作的,Linq可能是使用高级语言特性实现DSL的一个很好的例子。在Linq中,还应该有一些AST操作,这可能会让您感兴趣。 |
2
2
你知道吗 T4 Templates ?虽然它不允许你 创造 一个DSL,一旦您有了一个模型可以使用,它对于生成代码或其他基于文本的工件当然是很好的。例如,textmaplate1.tt:
这很快产生了:
显然,除了创建一个虚拟类之外,您还必须以其他方式将模型引入系统! |