I hope you could use the new later while building your library. TypeDescriptor is a static sealed sample which makes the starting point of the API. It images information of the object in terms of Properties, Attributes, Events, etc. Within though the basic usage of TypeDescriptor is to get metadata of an run, yet it also exposes features to extend the object on the fly..
Please note that the propagation 121988 be blocked somewhere in the subtree of an object. Just deactivate the Inherit permissions from parent objects option. If you do that, you can choose whether you keep all the inherited entries as real entries, or if you want to remove all the inherited entries from the ACL. You can easily change the propagation value.