Constant in MemberInfo

326 Views Asked by At

I try to get information about constant in my class Car, but unfortunately in result I get only 4 field (name, currentSpeed, maxSpeed, state). How can I get field const.

Thanks.

public abstract class Car
{
    protected string name;
    protected short currentSpeed;
    protected short maxSpeed;
    protected EngineState state;

    protected const int const = 1;
 }

........................................................

 Type type = assembly.GetType("CarLibrary.Car"); 

 MemberInfo[] members = type.GetMembers(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);

 foreach (MemberInfo element in members)
 Console.WriteLine("{0,-15}:  {1}", element.MemberType, element);
1

There are 1 best solutions below

2
On

This should give you constants, in your query BindingFlags.Instance was eliminating statics, and constants are static.

type.GetFields(BindingFlags.Static |
               BindingFlags.FlattenHierarchy)
    .Where(fi => fi.IsLiteral && !fi.IsInitOnly).ToList();