Object - SetFieldValue
A T extension method that sets field value.
public static void Main() { var obj = new TestClass(); //C# Extension Method: Object - SetFieldValue obj.SetFieldValue("PublicField", 5); obj.SetFieldValue("InternaStaticlField", 30); Console.WriteLine(obj.PublicField); Console.WriteLine(TestClass.InternaStaticlField); } public class TestClass { internal static int InternaStaticlField = 2; public int PublicField = 1; }
View Source
using System; using System.Reflection; public static partial class Extensions { /// <summary> /// A T extension method that sets field value. /// </summary> /// <typeparam name="T">Generic type parameter.</typeparam> /// <param name="this">The @this to act on.</param> /// <param name="fieldName">Name of the field.</param> /// <param name="value">The value.</param> public static void SetFieldValue<T>(this T @this, string fieldName, object value) { Type type = @this.GetType(); FieldInfo field = type.GetField(fieldName, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static); field.SetValue(@this, value); } }