我正在使用reflectable
库来反映导入包中的类型(如analysis_server_client
或flutter
)。我可以反思具有公共构造函数的类型,如Notification
或Request
(来自analysis_server_client
包)。我通过扩展这些类型然后使用superclassQuantifyCapability
功能来反思这些类型。
但是,我无法反映具有Icons
(来自flutter
包)的私有构造函数的类型,因为我无法扩展它们。有没有办法反映像Icons
这样的类型有私有构造函数?
我想到了。您必须使用GlobalQuantifyCapability
,它允许您声明哪些成员生成反射。它也适用于具有私有构造函数的类。一些示例代码:
@GlobalQuantifyCapability(r"^.(SomeClass|SomeEnum)", reflector)
import 'package:reflectable/reflectable.dart';
import 'package:some_package/some_class.dart';
import 'package:some_package/some_enum.dart';
class Reflector extends Reflectable {
const Reflector() : super(declarationsCapability, ...);
}
const reflector = const Reflector();