Is it possible to add attributes at runtime or to change the value of an attribute at runtime?
No, it's not.
Attributes are meta-data and stored in binary-form in the compiled assembly (that's also why you can only use simple types in them).