Type.GetFields() - 仅返回"public const"字段

Jon*_*ger 26 .net c# reflection

我想调用Type.GetFields()并只返回声明为"public const"的字段.到目前为止我有这个...

type.GetFields(BindingFlags.Static | BindingFlags.Public)
Run Code Online (Sandbox Code Playgroud)

......但这也包括"公共静态"字段.

Tho*_*que 35

type.GetFields(BindingFlags.Static | BindingFlags.Public).Where(f => f.IsLiteral);
Run Code Online (Sandbox Code Playgroud)


Jon*_*eet 20

尝试检查是否FieldInfo.Attributes包括FieldAttributes.Literal.我没有检查过,但听起来不错......

(我不认为你只能在一次调用中获得常量GetFields,但你可以过滤那种返回的结果.)