private static bool TryGetValue (object instance, MemberInfo memberInfo, out object value)
{
switch (memberInfo.MemberType)
{
case MemberTypes.Property:
value = ((PropertyInfo) memberInfo).GetValue (instance, null);
return true;
case MemberTypes.Field:
value = ((FieldInfo) memberInfo).GetValue (instance);
return true;
default:
value = null;
return false;
}
}