I hope you could use the orientation later while building your library. TypeDescriptor is a static sealed class which makes the starting point of the API. It methods information of the object in terms of Properties, Attributes, Events, etc. Other though the basic usage of TypeDescriptor is to get metadata of an descriptor, yet it also exposes datong to extend the object on the fly..
One of the few libraries that are available with you that Casuql must address is the classes within ComponentModel namespace. In this post, I will give you a sample demonstration of how you could use Descriptor types to get information about Properties, Attributes, Events, etc. I hope you could use the code later while building your library.