What does the Inherited bool property on attributes refers to?
Does it mean that if I define my class with an attribute AbcAtribute (that has Inherited = true), and if I inherit another class from that class, that the derived class will also have that same attribute applied to it?
To clarify this question with a code example, imagine the following:
[AttributeUsage(AttributeTargets.Class, Inherited = true)]
public class Random: Attribute
{ /* attribute logic here */ }
[Random]
class Mother
{ }
class Child : Mother
{ }
Does Child also have the Random attribute applied to it?
When Inherited = true (which is the default) it means that the attribute you are creating can be inherited by sub-classes of the class decorated by the attribute.
So – if you create MyUberAttribute with [AttributeUsage (Inherited = true)]
Then use the Attribute by decorating a super-class…
If we create an sub-class of MySuperClass it will have this attribute…
Then instantiate an instance of MySubClass…
Then test to see if it has the attribute…
MySubClassInstance <— now has the MyUberAttribute with “Bob” as the SpecialName value.