Когда Inherited = true (это значение по умолчанию), это означает, что создаваемый атрибут может наследоваться подклассами класса, украшенного атрибутом.
Итак - если вы создаете MyUberAttribute с [AttributeUsage (Inherited = true)] *
[AttributeUsage (Inherited = True)]
MyUberAttribute : Attribute
{
string _SpecialName;
public string SpecialName
{
get { return _SpecialName; }
set { _SpecialName = value; }
}
}
Тогда используйте Атрибут, украшая суперкласс ...
[MyUberAttribute(SpecialName = "Bob")]
class MySuperClass
{
public void DoInterestingStuf () { ... }
}
Если мы создадим подкласс MySuperClass, он будет иметь этот атрибут ...
class MySubClass : MySuperClass
{
...
}
Затем создать экземпляр MySubClass ...
MySubClass MySubClassInstance = new MySubClass();
Затем проверьте, имеет ли он атрибут ...
MySubClassInstance <--- теперь имеет MyUberAttribute со значением "Bob" в качестве значения SpecialName. </p>