dart中是否存在c#Reflection.Emit命名空间的等价物?
Reflection.Emit有许多类,用于在运行时构建类型并添加属性,在运行时混淆其getter和setter以及构建方法和事件处理程序,这在元编程方面非常强大。
我的想法是在运行时生成我的数据模型并在地图中缓存它们,这样我就可以在运行时创建实例,并在需要时添加新的方法和属性,而不是在生成后不必经常使用镜像在编写ORM和更多动态应用程序时,这可能非常有用,您只需使用一次反射而不是每次需要修改实例时都使用它
我的问题是:
Mirror Builder
的事情,但我不确定是否也这样做
事情,有人可以确认这是什么镜像生成器
大约?答案 0 :(得分:3)
我已经看到讨论,这应该在某个时候得到支持,但据我所知,在不久的将来不会开始工作。
类似的要求通常通过变换器在构建时生成代码(Polymer,Angular,others)来解决,变换器分析代码并生成反射属性访问的代码或HTML中的代码片段。
Smoke是一个旨在简化此操作的软件包。
代码生成的优势在于客户端需要下载的代码量要小得多。 当您在运行时进行代码生成时,您需要一个编译器,这是需要下载到浏览器中的大量代码。
try.dartlang.org采取了这样的方法。来源可在此处https://code.google.com/p/dart/source/browse/branches/bleeding_edge/dart/site/try/获取。 它包括dart2js(内置于JavaScript)并运行背景隔离,将Dart代码编译为JS。