Как сказал @Spencer Ruport, это атрибуты. Они используются в .NET для декларативного программирования .
Вы можете найти информацию о каждом из этих атрибутов на MSDN. Однако вы должны знать, что имя атрибута может быть сокращено. Например, в вашем случае Category
- это краткая форма имени класса CategoryAttribute
, а XmlElement
- это краткая форма имени класса XmlElementAttribute
. При объявлении атрибутов часть Attribute
имени класса может быть пропущена.
Я использовал большинство этих атрибутов в сочетании с элементом управления PropertyGrid
(см. здесь для примера), хотя в вашем случае они используются для панели свойств веб-части. Цель все та же. Атрибуты используются элементом управления, чтобы знать, как отобразить свойство для пользователя. Используя комбинацию различных атрибутов, которые понимает элемент управления, можно декларативно определять это поведение.
Надеюсь, это немного поможет, но Спенсер прав, вы узнаете намного больше о атрибутах через Google, чем я могу объяснить здесь.