How to get private, constant or static value of a field with reflection

To get the value of a private field of an instance in C#:

var actualNumberOfWinners =
    evaluator
        .GetType()
        .GetField("_numberOfWinners", BindingFlags.NonPublic | BindingFlags.Instance)
        .GetValue(evaluator);

Similarly, you can quite easily retrieve the value of a const or static field for a type, simply replace BindingFlags.Instance with BindingFlags.Static and call GetValue with null:

var constNumberOfWinners =
    evaluator
        .GetType()
        .GetField("DefaultNumberOfWinners", BindingFlags.NonPublic | BindingFlags.Static)
        .GetValue(null);

 

Learn to build Production-Ready Serverless applications

Want to learn how to build Serverless applications and follow best practices? Subscribe to my newsletter and join over 3,000 AWS & Serverless enthusiasts who have signed up already.

1 thought on “How to get private, constant or static value of a field with reflection”

Leave a Comment

Your email address will not be published.