To get the value of a pri­vate field of an instance in C#:

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

Sim­i­larly, you can quite eas­ily retrieve the value of a const or sta­tic field for a type, sim­ply replace BindingFlags.Instance with BindingFlags.Static and call Get­Value with null:

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

Leave a Reply