Рассмотрим следующий код.
Object obj;
PropertyDescriptorCollection A = TypeDescriptor.GetProperties(obj);
PropertyInfo[] B = obj.GetType().GetProperties(); // EDIT*
Я пытаюсь понять разницу между A и B. Из того, что я понимаю TypeDescriptor.GetProperties(), возвратит пользовательские свойства TypeDescriptor, где в качестве Type.GetProperties() будет возвращать только внутренние "реальные" свойства объекта. Это правильно? Если obj не имеет каких-либо пользовательских свойств TypeDescriptor, тогда он по умолчанию также возвращает литеральные внутренние свойства объекта.
* Оригинальная вторая строка кода до EDIT (имела неправильное возвращаемое значение):
PropertyDescriptorCollection B = obj.GetType(). GetProperties();