cod*_*nix 5 .net c# reflection code-generation codedom
我目前正在开发一个应用程序,您可以使用它创建"程序"而无需编写源代码,只需单击并播放即可.
现在的问题是如何从我的数据模型生成可执行程序.有很多可能性,但我不确定哪一个对我最好.我需要生成具有类和命名空间的程序集以及可以作为应用程序一部分的所有内容.
CodeDOM类:我听说过这个类的很多限制和错误.我需要在方法参数和返回值上创建属性.这支持吗?
以编程方式创建C#源代码然后在其上调用CompileAssemblyFromFile:这可以工作,因为我可以生成我想要的任何代码,C#支持大多数CLR功能.但这不会很慢吗?
使用反射ILGenerator类:我认为我可以生成所有可能的.NET代码.但我认为这比其他方法更复杂,更容易出错?
有其他可能的解决方案吗?
编辑:该工具是开发应用程序的一般工具,它不限于特定的域.我不知道它是否可以被视为可视化编程语言.用户可以创建类,方法,方法调用,各种表达式.它不会非常有限,因为您应该能够完成实际编程语言中允许的大多数事情.目前,用户仍然必须将很多东西写成文本,但最终的目标是,几乎所有东西都可以一起点击.
您会发现查看动态语言运行时是有益的,它或多或少是为创建基于 .NET 的高级语言而设计的。
也许还值得查看一些之前关于领域特定语言的 Stack Overflow 线程,其中包含一些用于使用 DSL 的工具的有用链接,这听起来有点像您正在计划的内容,尽管我仍然不太清楚这个问题是什么这正是你的目标。