static bool IsWritablePropertyOrField (MemberInfo member)
{
PropertyInfo pi = member as PropertyInfo;
if (pi != null)
return pi.GetSetMethod (false) != null;
FieldInfo fi = member as FieldInfo;
if (fi != null)
return !fi.IsInitOnly;
throw new ArgumentException ("Argument must be of PropertyInfo or FieldInfo type", "member");
}