Picked up an issue with mono, reverted to using a dictionary, which results in the same behaviour as registering the type through AddAttributes