Properties Reflection

In this chapter you will learn:

  1. How to List Properties by Reflection
  2. Get/set a property using a PropertyInfo

List Properties by Reflection

using System;/* j a  va 2 s  .c om*/
using System.Reflection;

public interface IFaceOne
{
  void MethodA();
}

public interface IFaceTwo
{
  void MethodB();
}

public class MyClass: IFaceOne, IFaceTwo
{
  public enum MyNestedEnum{}
  
  public int myIntField;
  public string myStringField;

  public void myMethod(int p1, string p2)
  {
  }

  public int MyProp
  {
    get { return myIntField; }
    set { myIntField = value; }
  }

  void IFaceOne.MethodA(){}
  void IFaceTwo.MethodB(){}
}

public class MainClass
{
  public static void Main(string[] args)
  {
    MyClass f = new MyClass();

       Type t = f.GetType();
    PropertyInfo[] pi = t.GetProperties();
    foreach(PropertyInfo prop in pi)
      Console.WriteLine("Prop: {0}",  prop.Name);
  }
}

The code above generates the following result.

Get/set a property using a PropertyInfo

using System;/*from j  a  v a 2  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);
      
            //get and set a property using a PropertyInfo
       PropertyInfo property = type.GetProperty("Text");
       property.SetValue(o, "www.softconcepts.com", null);
       string text = (string)property.GetValue(o, null);
      
       Console.WriteLine(text);
      
       EventInfo eventInfo = type.GetEvent("Changed");
       eventInfo.AddEventHandler(o, new EventHandler(Class1.OnChanged));
            ((MyClass)o).Text = "New Value";
    }
    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. Commonly used methods defined by Type
  2. Get methods
  3. Example to get all methods from a Type
  4. dump the public methods of a class
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