gpt4 book ai didi

dart - 如何检索用元数据标记的函数

转载 作者:行者123 更新时间:2023-12-01 11:36:30 26 4
gpt4 key购买 nike

请看下面的代码片段。

import "dart:mirrors";

class meta {
final String data;

const meta(this.data);
}


@meta("Tag")
doSomething() => print("You have to do something");

void main() {
doSomething();
}

如何检索功能,即带有元数据标签的市场?在我的示例中,我想找出哪个方法标有元标记。

最佳答案

你可以这样做:

void main() {
doSomething();
getMetaData();
}

void getMetaData() {
LibraryMirror currentLib = currentMirrorSystem().libraries.values.last;
currentLib.declarations.forEach((Symbol s, DeclarationMirror mirror) {
if(mirror.metadata.length > 0) {
print('Symbol $s has MetaData: "${mirror.metadata.first.reflectee.data}"');
}
});
}

这应该给你:

You have to do something
Symbol Symbol("doSomething") has MetaData: "Tag"

您还可以分析来自另一个项目的文件并在该文件上使用 dart:mirrors 而不是检查当前库。也许 libraries.values.last 不会总是返回当前库 - 因此您可能需要更改它。在我的例子中它起作用了。

关于dart - 如何检索用元数据标记的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26603981/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com