So I was playing around a little more with attributes in .NET, and realized that every call to Type.GetCustomAttributes() creates a new instance of my attribute. Why is that
It's because the attributes are saved in metadata. Attributes should be used for informations such as "user-friendly name of property", etc...