An easy way to achieve this is the type.GetProperty() and type.GetProperty().SetValue() methods, as explained below.
PropertyInfo pi = obj.GetType().GetProperty("Enabled");
bool enablable = (pi != null && pi.PropertyType.Equals(typeof(bool)));
if (enablable)
{
obj.GetType().GetProperty( "Enabled" ).SetValue( obj, true, null );
}
The very same thing can also be done with events, methods, fields, nested classes etc. See the following example for an event handler implementation:
EventInfo ei = obj.GetType().GetEvent("Paint");
bool paintable = (ei != null);
if (paintable)
{
PaintEventHandler pe = _Paint;
obj.GetType().GetEvent("Paint").AddEventHandler(obj, pe);
obj.GetType().GetEvent("Paint").RemoveEventHandler(obj, pe);
}
0 Kommentare:
Kommentar veröffentlichen