Mega Code Archive

 
Categories / C# / Reflection
 

Get class members

using System; using System.Collections.Generic; using System.Text; using System.Reflection; namespace SPaDevToolkit.StsAdm.Commands.Utilities {     internal static class Reflection     {         public static object InvokeMember(object src, string strName, BindingFlags type, object[] args)         {             bool bStatic = (src is Type);             Type t = bStatic ? (Type)src : src.GetType();             BindingFlags bindingFlags = BindingFlags.NonPublic | BindingFlags.Public |               BindingFlags.DeclaredOnly |               (bStatic ? BindingFlags.Static : BindingFlags.Instance) |               type;             object target = (bStatic ? null : src);             return (t.InvokeMember(strName, bindingFlags, null, target, args));         }         public static object GetProperty(object src, string strName)         {             return (InvokeMember(src, strName, BindingFlags.GetProperty, null));         }         public static object SetProperty(object src, string strName, object[] args)         {             return (InvokeMember(src, strName, BindingFlags.SetProperty, args));         }         public static object GetField(object src, string strName)         {             return (InvokeMember(src, strName, BindingFlags.GetField, null));         }         public static object SetField(object src, string strName, object[] args)         {             return (InvokeMember(src, strName, BindingFlags.SetField, args));         }     } }