Show / Hide Table of Contents

    Reflection


    Reflection objects are used for obtaining type information at runtime. This class is in the System.Reflection namespace.

    var i=20;
    Type type = i.GetType();
    
    //type = System.Int32
    

    Another example below shows how to access a private function from a different class. Let's say we have a class named ReflectionExample with private functions named FunctionA() and FunctionB().

    public class ReflectionExample {
        private uint FunctionA() => 0x1234;
    
        private uint FunctionB(uint numPlus) => 0x1234 + numPlus;
    }
    

    Reflection provides a way to access these two functions even though they are declared as private.

    var r = new ReflectionExample();
    
    var type = r.GetType();
    
    var methodA = type.GetMethod("FunctionA", BindingFlags.NonPublic | BindingFlags.Instance);
    
    var valueA = methodA.Invoke(r, null);
    
    var methodB= type.GetMethod("FunctionB", BindingFlags.NonPublic | BindingFlags.Instance);
    
    var valueB = methodB.Invoke(r, new object[] { (uint)1 });
    
    Debug.WriteLine("methodA : " + valueA);
    Debug.WriteLine("methodB : " + valueB);
    

    The output will be:

    methodA : 4660
    methodB : 4661
    
    • Improve this Doc
    ☀
    ☾

    Back to top

    Back to top Copyright © 2022 GHI Electronics, LLC
    Generated by DocFX