抱歉,如果这已在其他地方得到回答,但我对反射并不太熟悉,所以我不确定我应该搜索的确切术语。
基本上,我正在尝试为基于类型的类查找已定义的公共静态字段列表。
因此,鉴于类 LocalisationToken 我有许多基于此的类,例如 AboutToken、AdminToken 等。
这些类中的每一个都有这些派生类的公共静态只读实例,例如:
public static readonly LocalisationToken TermsAndConditions = new AboutToken("Terms And Conditions", Guid.Parse("595FB313-4940-489b-9CC8-4B9BF0B62E8B"));
public static readonly LocalisationToken OkGotIt = new AboutToken("OK, got it", Guid.Parse("5F5F22A4-C45C-43f0-A2A4-304740E0EE12"));
我想做的是在运行时找到编译库中的所有实例。例如,实例化 AboutToken 时的底层代码是使用构造函数属性创建一个新的 LocalisationToken。我的要求是取回 Guid 和默认文本,例如“条款和条件”和 595FB313-4940-489b-9CC8-4B9BF0B62E8B
如果我在包含 LocalisationToken 的程序集上使用 GetTypes(),我只会得到 AboutToken、AdminToken 等的各种派生类。我需要实际的实例。
碰巧的是,我根本不需要派生类。但是,即使所有实例都标记为“LocalisationTokens”,我是否需要遍历这些?