Я смотрю на некоторый код, где автор MSDN использует следующее в различных методах одного и того же класса:
if ( TypeDescriptor.GetProperties(ModelInstance)[propertyName] != null ) return;
var property = ModelInstance.GetType().GetProperty(propertyName);
Вы бы использовали первое, потому что оно быстрее, и вам нужно только запросить свойство, а второе, если вам нужно манипулировать им? Что-то еще?