问题标签 [dart-mirrors]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
reflection - 飞镖,如何获取特定成员的符号?
获取类中单个成员的符号的最有效方法是什么?
dart - 如何通过 Dart 中的反射获取构造函数的参数?
我正在玩 Dart 中的镜子东西。我找不到任何方法来反映一个类并弄清楚它是否有构造函数,如果有,这个构造函数的参数是什么。
使用 ClassMirror 时,DeclarationMirror 对象的“声明”集合看起来将包含构造函数的条目,但是 DeclarationMirror 无法判断它是否是构造函数,也无法查看有关参数的信息。
使用 MethodMirror 对象的“instanceMembers”集合,看起来甚至不包括构造函数。我认为这是因为构造函数不是一种可以调用的普通方法,但仍然很奇怪,因为 MethodMirror 具有“isConstructor”属性。
有没有办法,给定一个对象类型,确定它是否有一个构造函数,如果有,获取该构造函数的参数信息?
下面的代码说明了这个问题:
reflection - 飞镖,如何使用反射获取通用类型的方法参数?
我有测试应用程序:
我希望能够找出传入方法的第一个参数的泛型类型是什么testMirrors
,因此在上面的示例中就是int
这样bool
。这甚至可能吗?如果我检查参数类型属性为空。
dart - Dart 元编程功能
dart 中是否会有 c# Reflection.Emit 命名空间的等价物?
Reflection.Emit 有许多类用于在运行时构建类型并添加属性,配置它们的 getter 和 setter,以及在运行时构建方法和事件处理程序,这在元编程方面非常强大。
我的想法是在运行时生成我的数据模型并将它们缓存在地图中,这样我就可以在运行时创建实例并在需要时向它们添加新的方法和属性,而不必在生成类后经常使用镜像,这在编写 ORM 和更动态的应用程序时可能非常有用,在这些应用程序中使用一次反射而不是每次需要修改实例时都使用它
我的问题是:
- 未来版本的 dart 会不会有这样的东西?他们提到了一些关于 a
Mirror Builder
但我不确定是否做同样的事情,有人可以确认这是否是 Mirror Builder 的意思吗? - 另一个问题是,如果我能够在服务器上将我的数据类型生成为字符串,有没有办法在将它们发送到客户端之前编译它们并将它们映射到 Map 并使用此 Map 创建实例?
constructor - Dart,是否可以使用没有镜像的默认构造函数创建实例?
我试图通过使用@MirrorsUsed 来减少我的 dart2js 输出,尽管我目前必须注册比我想要的更多的类型,因为我需要它知道某些类有一个默认构造函数,因为我做这样的事情:
但是如果我还没有注册class A
@MirrorsUsed 它无法创建 A 的实例,因为它不知道它是否具有由const Symbol('')
.
无论如何,在飞镖中是否可以仅从类型创建一个类型的实例,而不必像我上面所做的那样对其进行反思?
dart - 如何检索声明上的注释
根据规范,元数据可以出现在变量声明之前。
但是,它没有说明是否可以检索。
输出false
;
是否可以检索这种注释用法?
reflection - How to find corresponding setters and getters?
Using the dart:mirrors library how can I find all corresponding getters and setters for any class mirror.
In this example I'd like to find "name" setter and getter methods to group them without any prior knowledge about the class.
Is there a way to do this properly? Or should I hack my way through using class mirror's instanceMembers, perhaps converting setters symbols to strings or something like that?
dart - 如何实现调用缓存(Memoization)
我想用元数据注释以非侵入性的方式实现调用缓存(记忆)。
希望它会像这样工作:
可以实现dart:mirrors
吗?
dart - 通过元数据标签引用类
是否可以使用一些元数据注释找到(可能使用镜像 API)所有类(在我的项目中)?
例子:
dart - 如何在 dart 中制作动态 getter/setter
我正在尝试重新创建 djangos QueryDict 功能并制作一个可以给定 Map 的对象,它是对象中的私有变量,并且 getter/setter 用于动态地从地图中提取。我已经设法重新创建它的 get() 方法,但我在动态获取价值时迷失了方向。这是我到目前为止所拥有的:
这是关于它如何工作的 djangos 页面: https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.QueryDict。获取项目