Подтвердить что ты не робот

Когда следует использовать атрибут в С#?

Я видел некоторые примеры использования атрибута, например. (как карта для динамического factory) http://msdn.microsoft.com/en-us/magazine/cc164170.aspx

Просто интересно, в чем преимущество использования атрибута? Я могу найти ссылку на http://msdn.microsoft.com/en-gb/z0w1kczw(VS.80).aspx однако, я не уверен, когда и почему я должен его использовать.

4b9b3361

Ответ 1

В .NET Framework атрибуты могут использоваться по многим причинам - например,

  • Определение классов serializable

  • Выбор методов, которые веб-службы

Attributes позволяют добавлять descriptions к классам, свойствам и методам во время разработки, которые затем могут быть рассмотрены во время выполнения через отражение.

Рассмотрим этот пример:

Скажите, что у вас есть класс, который имеет метод из старой версии, который по-прежнему используется по какой-либо причине, и теперь вы создали новую версию класса, которая использует фантастическое использование Generic List и LINQ и имеет новый метод для аналогичной цели. Вы хотели бы, чтобы разработчики предпочли новый, предоставленный в более поздней версии вашей библиотеки. Как вы это сделаете? Один из способов - записать в документацию. Лучше всего использовать атрибут следующим образом.

public class AccountsManager
{
  [Obsolete("prefer GetAccountsList", true)]
  static Account[] GetAccounts( ) { }    
  static List<Account> GetAccountsList( ) { }      
}

Если при компиляции программы используется метод obsolete, разработчик получает эту информацию и соответственно решает.

AccountManager.GetAccounts() устарел: предпочитают GetAccountsList

Мы также можем создать и добавить Custom Attributes в соответствии с требованиями.

Ссылка:


Надеюсь, что это поможет

Ответ 3

Атрибуты подходят, если вы хотите присоединить метаданные к своим классам или членам класса, а также при применении общего поведения без необходимости реализации определенного интерфейса для каждой единицы, которая разделяет поведение. Последнее является примером аспектно-ориентированного программирования.

Ответ 4

Рассмотрим атрибут как метаданные о методе или свойстве, которому он принадлежит. Он рассказывает что-то о члене.

Ответ 5

.NET Framework предопределяет и использует типы атрибутов для управления временем выполнения приложения.

Рассмотрим атрибут [webmethod], в среде выполнения разрешает этот атрибут и определяет, что этот метод будет отображаться в веб-сервисе.

Таким же образом вы можете написать свои пользовательские атрибуты для управления поведением вашего приложения во время выполнения. Атрибуты могут быть нацелены на классы, методы, свойства, делегат, перечисление, событие, поле...

Чтобы разрешить атрибут во время выполнения, вы должны использовать отражение.

За дополнительной информацией обратитесь к MSDN.