Перфолента.NET. ООП. Атрибуты Net Farmework — различия между версиями
Дизайнер (обсуждение | вклад) м (→Атрибуты NET Framework и их использование) |
Дизайнер (обсуждение | вклад) м |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
== Атрибуты NET Framework и их использование == | == Атрибуты NET Framework и их использование == | ||
− | Операторы АтрибутСборки и АтрибутМодуля предназначены не только для установки атрибутов определенных в Net. Можно и свои атрибуты назначать для сборки и модуля. В Net определены несколько атрибутов, которые к сборке и модулю более-менее часто применяются, а свои атрибуты редко к сборке применяются, но можно это делать, если придумаете полезное применение. | + | Операторы '''АтрибутСборки''' и '''АтрибутМодуля''' предназначены не только для установки атрибутов определенных в Net. Можно и свои атрибуты назначать для сборки и модуля. В Net определены несколько атрибутов, которые к сборке и модулю более-менее часто применяются, а свои атрибуты редко к сборке применяются, но можно это делать, если придумаете полезное применение. |
В Net можно найти атрибуты для любых элементов программы, и для классов и для свойств, методов, полей, параметров методов и т.д. | В Net можно найти атрибуты для любых элементов программы, и для классов и для свойств, методов, полей, параметров методов и т.д. | ||
Строка 67: | Строка 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)
- Пометить метод атрибутом WebMethod в Web сервисах, для указания, что метод должен вызываться через SOAP протокол.
- Описание способа передачи параметров метода в не управляемый код с помощью атрибута System.Runtime.InteropServices.MarshalAs.
- Описание свойств COM для классов, методов и интерфейсов.
- Вызов методов неуправляемого кода с помощью атрибута System.Runtime.InteropServices.DllImport (синоним ИмпортМетода).
- Описание свойств сборки, таких как, версия, заголовок, копирайт и т.д., с помощью группы атрибутов подобных System.Reflection.AssemblyTitle.
- Пометка членов класса, которые могут быть сериализованы с помощью атрибута System.Serializable (синоним Сериализуемый).
- Описание сопоставления между членами класса и узлами XML для сериализации объекта в XML.
- Описание требований безопасности для методов.
- Указание характеристик, используемых для обеспечения безопасности.
- Установка параметров JIT компиляции, например, для сохранения удобства отладки.
- Получение информации о вызывающем методе.
- Указание на то, что метод или другой элемент программы устарел с помощью атрибута System.Obsolete.
Использование атрибутов в указанных случаях описано в документации .Net.