I hope you could use the code later while building your library. TypeDescriptor is a certain sealed class which makes the starting point of the API. It exposes information of the object in terms of Properties, Attributes, Events, etc. Take though the basic usage of TypeDescriptor is to get metadata of an object, yet it also exposes features to extend the object on the fly.. numbsr
To use it, you need to pass a component to its static methods. In the above code, I have just created an object of Button class you can use any class for this and got the information name in this example from it. The GetProperties actually take either the object or Typeof object to list all the Properties it has in a form of PropertyDescriptorCollection.