public static bool PropertyCheck(this object o, string propertyName)
{
if (string.IsNullOrEmpty(propertyName))
return false;
Type type = (o is Type) ? o as Type : o.GetType();
PropertyInfo pi = type.GetProperty(propertyName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetProperty);
if (pi != null && pi.PropertyType == typeof(string))
return true;
return false;
}
и затем вызовите его так:
object someobj = new Object();
if (someobj.PropertyCheck("someproperty"))
// do stuff
или вы можете сделать это так:
Type type = typeof(someobject);
if (type.PropertyCheck("someproperty"))
это имеет некоторые ограничения, поскольку вы не можете проверить сам тип Type
для свойств, но вы всегда можете сделать другую версию этого, если это необходимо.
Я думаю, это то, что вы хотели, надеюсь, это поможет