See Overview of Descriptor Description . Most people use it for design convenience, because it allows you to create new / hide existing properties or completely change the way the control is presented in the Visual Studio properties window. However, it works as well as development time. For example, when you call TypeDescriptor.GetProperties, you get all the properties of the type or object (instance-specific properties) from any TypeDescriptorProvider that is registered for this type / object. You can link them, and there is a default provider that uses the old reflection technology if nothing more specific is registered.
, GetProperties , , , , .