Только несколько атрибутов получают поддержку компилятора, но одно очень интересное использование атрибутов находится в AOP: PostSharp использует Ваши сделанные на заказ атрибуты для введения IL в методы, позволение всего способа способностей... регистрирует/прослеживает быть тривиальными примерами - но некоторыми другими хорошими примерами являются вещи как автоматическая реализация INotifyPropertyChanged ( здесь ).
Некоторые, которые происходят и , влияют на компилятор или время выполнения непосредственно :
[Conditional("FOO")]
- звонит в этот метод (включая оценку аргумента), только происходят, если символ "НЕЧТО" определяется во время сборки [MethodImpl(...)]
- раньше указывал на некоторых, вещь как синхронизация, встраивая [PrincipalPermission(...)]
- раньше вводила проверки безопасности в код автоматически [TypeForwardedTo(...)]
- раньше перемещал типы между блоками , не восстанавливая вызывающие стороны Для вещей, которые проверяются вручную через отражение - я - большой поклонник System.ComponentModel
атрибуты; вещи как [TypeDescriptionProvider(...)]
, [TypeConverter(...)]
, и [Editor(...)]
, который может полностью изменить поведение типов в привязке данных сценариев (т.е. динамические свойства и т.д.).
Если существует потребность сделать интерполяции и изменяющий размеры существует место для ошибок, и подобно (различное разрешение), изображения могут быть отмечены, как дублировано. Существует поэтому потребность в человеческой проверке.
Смотрят на imagemagick. Веб-страница выглядит древней, но это все еще хорошо.
Требовалось много времени для меня для нахождения того, которое работало на меня так, я сделал видео о том, как использовать эту функцию. Не знайте об этом создающий список, хотя
Ссылка XnViewMP http://www.xnview.com/en/xnviewmp/