Исполнение модуля
Модуль существует в том же окружении, что и тип, к которому относится модуль: Клиент, Сервер или КлиентИСервер. Однако методы и типы, объявленные в модуле, могут существовать и исполняться в разных окружениях.
Есть стандартные окружения, в которых существуют типы и исполняются методы модуля. Они используются тогда, когда окружение не указано в явном виде. Они зависят от вида элемента проекта:
Наряду с этим окружение для метода, структуры, исключения, перечисления, константы можно задать в явном виде с помощью аннотаций окружения:
@НаКлиенте
,@НаСервере
,@ДоступноСКлиента
.
Аннотации окружения работают следующим образом:
-
Если у типа окружение «КлиентИСервер»:
Можно использовать следующие аннотации окружения:
-
@НаСервере
Метод (тип) доступен на сервере.
Метод исполняется на сервере.
-
@НаКлиенте
Метод (тип) доступен на клиенте.
Метод исполняется на клиенте.
-
@НаСервере @НаКлиенте
Метод (тип) доступен и на клиенте, и на сервере.
Если метод вызывается с клиента, то он исполняется на клиенте.
Если метод вызывается с сервера, то он исполняется на сервере.
-
@НаСервере @ДоступноСКлиента
Метод (тип) доступен и на клиен те, и на сервере.
Метод исполняется на сервере, а вызвать его можно как с сервера, так и с клиента.
-
-
Если у типа окружение «Клиент»:
Можно использовать те же аннотации, что и для предыдущего случая. Разница только в методах, имеющих аннотацию
@НаСервере
. Они не имеют доступа к экземпляру, то есть у них нет контекста экземпляра и недоступно обращение черезэтот
. -
Если у типа окружение «Сервер»:
Можно использовать только одну аннотацию —
@НаСервере
. Однако окружение Сервер является стандартным для таких модулей, поэтому аннотацию@НаСервере
можно не писать.