Ответ 1
Это зависит от того, как объявлен сам атрибут - см. AttributeUsageAttribute.Inherited
.
Применяются ли атрибуты к абстрактному методу в базовом классе, применяемом к переопределенным версиям в дочерних классах?
Надеюсь, этот вопрос достаточно ясен без примера.
Это зависит от того, как объявлен сам атрибут - см. AttributeUsageAttribute.Inherited
.
Это зависит от атрибута.
применяемые к защите класса Attribute, несут свойство [AttributeUsageAttribute.Inherited], которое определяет, наследуется ли наследуемое свойство в производных классах.
проверьте этот образец
[global::System.AttributeUsage(AttributeTargets.Method, Inherited = true,
AllowMultiple = false)]
public sealed class MyAttribute : Attribute
{
public MyAttribute (string FieldName)
{
//constructor.
}
}
Вы можете указать это, применив атрибут AttributeUsage к вашим пользовательским, и установив Унаследованное свойство (по умолчанию это верно). Это свойство указывает, может ли ваш атрибут наследоваться классами, производными от классов, в которых применяется ваш настраиваемый атрибут.
[AttributeUsage( Inherited = false)]
public class CustomAttribute : Attribute
{
}
Рекомендуемое чтение: