Set Field value

In this chapter you will learn:

  1. Get/set private field using InvokeMember

Get/set private field using InvokeMember

using System;//from ja  v  a2 s .  com
using System.Reflection;
using System.Windows.Forms; 

public class Class1
{
    static void Main( string[] args )
    {
      Type type = typeof(MyClass);
      object o = Activator.CreateInstance(type);
      
      type.InvokeMember("text", BindingFlags.SetField | BindingFlags.NonPublic | BindingFlags.Instance, null, o, new object[]{"C#"});
      string text = (string)type.InvokeMember("text", BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Instance, null, o, new object[]{});
     
    }
    private static void OnChanged(object sender , System.EventArgs e)
    {
      Console.WriteLine(((MyClass)sender).Text);
    }
}
public class MyClass
{
  private string text;
  
  public string Text
  {
    get{ return text; }
    set
    { 
      text = value;
      OnChanged(); 
    }
  }
  
  private void OnChanged()
  {
    if( Changed != null )
      Changed(this, System.EventArgs.Empty); 
  }
  
  public event EventHandler Changed;
}

Next chapter...

What you will learn in the next chapter:

  1. Create Delegate using reflection
Home » C# Tutorial » Reflection
Reflection
Type
Type properties
Field reflection
Field Type
Field Attributes
FieldHandle
Field value
Set Field value
delegate reflection
Event reflection
Indexer reflection
Properties Reflection
Method
Parameter
Invoke
Type Instantiating
interface reflection
Generic type reflection
Reflection on nested Types
Subtype
Array reflection
Assembly