2009-08-17 12 views

Respuesta

20

Intentando verificar si FieldInfo.Attributes incluye FieldAttributes.Literal. No he comprobado, pero suena bien ...

(no creo que usted puede conseguir únicas constantes en una sola llamada a GetFields, pero puedes filtrar los resultados devueltos de esa manera.)

34
type.GetFields(BindingFlags.Static | BindingFlags.Public).Where(f => f.IsLiteral); 
0

a partir de .NET 4.5 que puede hacer que

public class ConstTest 
{ 
    private const int ConstField = 123; 

    public int GetValueOfConstViaReflection() 
    { 
     var fields = this.GetType().GetRuntimeFields(); 
     return (int)fields.First(f => f.Name == nameof(ConstField)).GetValue(null); 
    } 
} 

he comprobado y parece que todos los campos tiene consts privadas.

Cuestiones relacionadas