首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dart元编程特性

Dart元编程特性
EN

Stack Overflow用户
提问于 2014-05-20 11:50:51
回答 1查看 1.7K关注 0票数 4

在dart中是否存在c# Reflection.Emit名称空间的等价物?

Reflection.Emit有许多类,用于在运行时构建类型并添加属性,配置它们的getter和setter,并在运行时构建方法和事件处理程序,这对于元编程来说是非常强大的。

我的想法是在运行时生成我的数据模型,并将它们缓存在一个映射中,这样我就可以在运行时创建实例,并在需要时向它们添加新的方法和属性,并且在生成类之后不必经常使用镜像,这在编写ORMs和更动态的应用程序时非常有用,而不是每次需要修改实例时都使用反射。

我的问题是:

  • 在将来的飞镖版本中会有这样的东西吗?他们提到了一些关于一个Mirror Builder,但我不确定是否做同样的事情,有人能确认一下,如果这是一个镜子生成器是什么?
  • 另一个问题是,如果我能够以字符串的形式在服务器上生成数据类型,那么在将它们发送到客户端并将它们映射到map中并使用此Map创建实例之前,是否有一种方法可以编译它们?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-20 11:56:23

我已经看到一些讨论,认为这应该在某一时间得到支持,但据我所知,在不久的将来将不会开始工作。

类似的需求通常通过构建时的代码生成来解决(聚合物,棱角,其他),通过分析代码并生成代码以进行HTML中的反射属性访问或代码片段。

冒烟是一个旨在简化这个程序的包。

代码生成的优点是,客户端需要下载的代码数量要小得多。当您在运行时进行代码生成时,您需要一个编译器,这是许多需要下载到浏览器中的代码。

try.dartlang.org采取了这样一种方法。源可以在这里获得,边缘/飞镖/地点/尝试/。它包括dart2js (构建为JavaScript),并运行后台隔离,将Dart代码编译为JS。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23759041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档