Манифест пакета Event Receiver
Манифест пакета Event Receiver
Файл manifest.json в корне .portalevent.
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
id | string | да | Уникальный ключ vendor.name, используется как job_type |
title | string | да | Название в UI |
version | string | да | Версия пакета |
description | string | нет | Описание |
entry | string | да | Путь к .dll внутри ZIP |
entryType | string | да | Полное имя C#-класса (IEventReceiver) |
events | string[] | да | Поддерживаемые события (для UI) |
serviceKey | string | нет | Служба очереди (по умолчанию event-extensions) |
configSchema | object | нет | Схема config для привязки Event Receiver |
Пример
{ "id": "contoso.list-change-handler", "title": "List Change Handler", "version": "2.0.0", "description": "Реакция на изменения элементов списка", "entry": "dist/ListChangeHandler.dll", "entryType": "Contoso.ListChangeHandler.ListChangeHandler", "events": ["listItem.created", "listItem.updated", "listItem.deleted"], "serviceKey": "event-extensions", "configSchema": { "note": { "type": "text", "label": "Примечание", "default": "" } }}C# handler
Класс реализует Portal.EventReceiver.Sdk.IEventReceiver:
public sealed class ListChangeHandler : IEventReceiver{ public async Task<object?> HandleAsync(EventContext context, IReceiverApi api, CancellationToken ct) { api.Log.Info(context.EventName); return new { ok = true }; }}Worker загружает DLL через AssemblyLoadContext и вызывает HandleAsync при выполнении job.