Атрибуты в интерфейсе (C#) - CodeHelper

Атрибуты в интерфейсе (C#)

2

Можно ли задавать атрибуты методам и свойствам в интерфейсе? Какие атрибуты при этом будут назнычены соответствующим членам класса, реализующего этот интерфейс? Пример:

public interface ISomeInterface
{
    [Operation]
    void DoOperation();
}

Лучший ответ:

3

Это зависит непосредственно от самого атрибута. Если он был определен с примененным к нему атрибутом 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(){};
}
v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.