Search code examples
c#reflectionc#-2.0system.reflection

Using Reflection to set a static variable value before object's initialization?


Is there anyway to set the value of a static (private) variable on an object that has not been initialized? The SetValue method requires an instance, but I'm hoping there's a way to get around this.


Solution

  • For static values you can pass null for the instance parameter.

    var type = typeof(SomeClass);
    var field = type.GetField("SomeField", BindingFlags.NonPublic | BindingFlags.Static);
    field.SetValue(null, 42);