public bool PemStatus(object o, string name, string PEM) { switch (PEM.ToUpper()) { case "P" : System.Reflection.PropertyInfo pi = o.GetType().GetProperty(name); if (pi == null) return false; else return true; case "E" : System.Reflection.EventInfo ei = o.GetType().GetEvent(name); if (ei == null) return false; else return true; case "M" : System.Reflection.MethodInfo mi = o.GetType().GetMethod(name); if (mi == null) return false; else return true; default : return false; } }And the code to call it:
if (this.PemStatus(oObject, "SetFilter", "M")) { // You didn't say if this method call required any parameters, but if it does, // they need to be passed in as an array of objects. object[] parms = new object[1]; parms[0] = "MyParm"; MyFilter = (string)oObject.GetType().GetMethod("SetFilter").Invoke(oObject, parms); }I still like interfaces better!!! <g>