A list of classes that when used as metadata indicates a reflective
target. See also targets
.
The following text is non-normative:
The format for specifying the list of classes is the same as used for
specifying targets
. However, as a library cannot be used as a metadata
annotation in Dart, adding a library to the list of metaTargets
has no
effect. In particular, adding a library to metaTargets
does not make
the library's classes valid metadata annotations to enable reflection.
If an instance of a class specified in metaTargets
is used as
metadata annotation on a library, class, field or method, that library,
class, field or method is added to the set of targets for reflection.
Example usage:
library example;
@MirrorsUsed(metaTargets: "example.Reflectable")
import "dart:mirrors";
class Reflectable {
const Reflectable();
}
class Foo {
@Reflectable()
reflectableMethod() { ... }
nonReflectableMethod() { ... }
}
In the above example. reflectableMethod
is marked as reflectable by
using the Reflectable
class, which in turn is specified in the
metaTargets
annotation.
The method nonReflectableMethod
lacks a metadata annotation and thus
will not be reflectable at runtime.