Using reflection, how do I detect properties that have setters?
I have this code to loop through an object and get all of its properties through reflection:
foreach (var propertyInfo in typeof(TBase).GetProperties(BindingFlags.Public | BindingFlags.Instance))
{
var oldValue = propertyInfo.GetValue(oldVersion, null);
}
How can I do a check to only look at properties that have a "Set" on them? (I want to ignore read-only values - just "Get".)
Solution 1:
PropertyInfo.CanWrite
(documentation)
or
PropertyInfo.GetSetMethod
(documentation)
Solution 2:
propertyInfo.GetSetMethod() != null