Можно ли задавать атрибуты методам и свойствам в интерфейсе? Какие атрибуты при этом будут назнычены соответствующим членам класса, реализующего этот интерфейс? Пример:
public interface ISomeInterface
{
[Operation]
void DoOperation();
}
Можно ли задавать атрибуты методам и свойствам в интерфейсе? Какие атрибуты при этом будут назнычены соответствующим членам класса, реализующего этот интерфейс? Пример:
public interface ISomeInterface
{
[Operation]
void DoOperation();
}
Это зависит непосредственно от самого атрибута. Если он был определен с примененным к нему атрибутом AttributeUsageAttribute
, свойство Inherited
которого установлено в true
, то он будет применен ко всем наследникам.
Вот пример:
[AttributeUsege(AttributeTargets.Method, Inherited = true)]
public class SomeAttribute : Attribute
{
}
public class SomeClassBase
{
[SomeAttribute]
protected virtual void DoSomething();
}
public class SomeDerivedClass : SomeClassBase
{
// К этому методу атрибут SomeAttribute применен
protected override void DoSomething(){};
}