Перфолента.NET. ООП. Атрибуты Net Farmework — различия между версиями

Материал из ТХАБ.РФ
Перейти к: навигация, поиск
(Новая страница: «== Атрибуты NET Framework и их использование == === Атрибуты сборки (.NET) === В .Net определены разнооб…»)
 
м
 
(не показаны 2 промежуточные версии этого же участника)
Строка 1: Строка 1:
 
== Атрибуты NET Framework и их использование ==
 
== Атрибуты NET Framework и их использование ==
+
 
 +
Операторы '''АтрибутСборки''' и '''АтрибутМодуля''' предназначены не только для установки атрибутов определенных в Net. Можно и свои атрибуты назначать для сборки и модуля. В Net определены несколько атрибутов, которые к сборке и модулю более-менее часто применяются, а свои атрибуты редко к сборке применяются, но можно это делать, если придумаете полезное применение.
 +
 
 +
В Net можно найти атрибуты для любых элементов программы, и для классов и для свойств, методов, полей, параметров методов и т.д.
 +
 
 
=== Атрибуты сборки (.NET) ===
 
=== Атрибуты сборки (.NET) ===
 +
 
В .Net определены разнообразные атрибуты, которые есть смысл применять к сборке в определенных ситуациях. Этот вид атрибутов желательно задавать в начале программы на уровне классов.  
 
В .Net определены разнообразные атрибуты, которые есть смысл применять к сборке в определенных ситуациях. Этот вид атрибутов желательно задавать в начале программы на уровне классов.  
 
   
 
   
  АтрибутСборки  System.Runtime.InteropServices.ComVisible(Ложь)
+
  '''АтрибутСборки'''   System.Runtime.InteropServices.ComVisible(Ложь)
 
   
 
   
 
=== Атрибуты модуля сборки (.NET) ===
 
=== Атрибуты модуля сборки (.NET) ===
 +
 
В .Net определены несколько атрибутов, которые есть смысл применять к модулю сборки в определенных ситуациях (не путайте модуль сборки с модулями программы). Этот вид атрибутов желательно задавать в начале программы на уровне классов.
 
В .Net определены несколько атрибутов, которые есть смысл применять к модулю сборки в определенных ситуациях (не путайте модуль сборки с модулями программы). Этот вид атрибутов желательно задавать в начале программы на уровне классов.
  
  АтрибутМодуля  System.CLSCompliant(Истина)
+
  '''АтрибутМодуля'''   System.CLSCompliant(Истина)
  
 
=== Атрибуты параметров метода. ===
 
=== Атрибуты параметров метода. ===
Строка 61: Строка 67:
 
* [[Перфолента.NET. ООП. Атрибуты элементов программы]]
 
* [[Перфолента.NET. ООП. Атрибуты элементов программы]]
 
* [[Перфолента.NET. ООП. Как написать свой атрибут]]
 
* [[Перфолента.NET. ООП. Как написать свой атрибут]]
 +
 +
== Ссылки ==
 +
* http://promcod.com.ua/Article.asp?code=20201106234710055491 Первоисточник
  
 
[[Категория:Перфолента.NET. Описание языка Перфолента.NET]]
 
[[Категория:Перфолента.NET. Описание языка Перфолента.NET]]
 
[[Категория:Перфолента.NET. Объектно-Ориентированное Программирование]]
 
[[Категория:Перфолента.NET. Объектно-Ориентированное Программирование]]

Текущая версия на 16:30, 12 ноября 2020

Атрибуты NET Framework и их использование

Операторы АтрибутСборки и АтрибутМодуля предназначены не только для установки атрибутов определенных в Net. Можно и свои атрибуты назначать для сборки и модуля. В Net определены несколько атрибутов, которые к сборке и модулю более-менее часто применяются, а свои атрибуты редко к сборке применяются, но можно это делать, если придумаете полезное применение.

В Net можно найти атрибуты для любых элементов программы, и для классов и для свойств, методов, полей, параметров методов и т.д.

Атрибуты сборки (.NET)

В .Net определены разнообразные атрибуты, которые есть смысл применять к сборке в определенных ситуациях. Этот вид атрибутов желательно задавать в начале программы на уровне классов.

АтрибутСборки   System.Runtime.InteropServices.ComVisible(Ложь)

Атрибуты модуля сборки (.NET)

В .Net определены несколько атрибутов, которые есть смысл применять к модулю сборки в определенных ситуациях (не путайте модуль сборки с модулями программы). Этот вид атрибутов желательно задавать в начале программы на уровне классов.

АтрибутМодуля   System.CLSCompliant(Истина)

Атрибуты параметров метода.

Не только сами методы могут иметь атрибуты, но и их параметры. Для параметров используется тот же синтаксис атрибутов, как и для других элементов программы.

&ВидноВсем
Функция СобратьБит32( &АнглСиноним("HighDigits") Знач СтаршиеРазряды тип Бит16,
                     &АнглСиноним("LowDigits")  Знач МладшиеРазряды тип Бит16
                     ) &АнглСиноним("ReturnValue") тип Бит32 //к возвращаемому параметру тоже можно применить атрибуты
   Возврат (Бит32(СтаршиеРазряды) << 16) БитИли МладшиеРазряды
КонецФункции

Определение особого порядка и правил передачи полей структуры (NET)

Структуры, которые необходимо передавать коду, написанному на языках подобных C, C++, Rust, чаще всего необходимо отметить атрибутом StructLayout заставляющем среду исполнения сформировать структуру пригодную к передаче. Также необходимо убедиться, что правильно передаются поля имеющие сложный тип, такие как массивы или другие структуры. Для задания правил передачи используется атрибут MarshalAs. Ознакомьтесь с документацией .Net по этим атрибутам, прежде, чем передавать структуры в код, написанный на указанных языках.

&StructLayout(LayoutKind.Sequential){ .Pack=1, .CharSet=CharSet.Auto }
Структура UDT
   &ВидноВсем Поле rxStatus тип Цел16
   &ВидноВсем Поле datalen тип Байт
   &ВидноВсем, MarshalAs(UnmanagedType.ByValArray){ .SizeConst=255 }
   Поле array1 тип Байт[]
   &ВидноВсем
   Процедура Инициализировать()
       //код инициализации
   КонецПроцедуры
КонецСтруктуры

Наиболее актуальные случаи применения атрибутов (NET)

  1. Пометить метод атрибутом WebMethod в Web сервисах, для указания, что метод должен вызываться через SOAP протокол.
  2. Описание способа передачи параметров метода в не управляемый код с помощью атрибута System.Runtime.InteropServices.MarshalAs.
  3. Описание свойств COM для классов, методов и интерфейсов.
  4. Вызов методов неуправляемого кода с помощью атрибута System.Runtime.InteropServices.DllImport (синоним ИмпортМетода).
  5. Описание свойств сборки, таких как, версия, заголовок, копирайт и т.д., с помощью группы атрибутов подобных System.Reflection.AssemblyTitle.
  6. Пометка членов класса, которые могут быть сериализованы с помощью атрибута System.Serializable (синоним Сериализуемый).
  7. Описание сопоставления между членами класса и узлами XML для сериализации объекта в XML.
  8. Описание требований безопасности для методов.
  9. Указание характеристик, используемых для обеспечения безопасности.
  10. Установка параметров JIT компиляции, например, для сохранения удобства отладки.
  11. Получение информации о вызывающем методе.
  12. Указание на то, что метод или другой элемент программы устарел с помощью атрибута System.Obsolete.

Использование атрибутов в указанных случаях описано в документации .Net.

См. также

Ссылки