Инструменты пользователя

Инструменты сайта


Боковая панель

Перевод этой страницы:

ru:zennoposter:using-csharp-macro

Использование C# макросов

Обратите внимание! Эта функция только для опытных пользователей.
Начиная с версии 4.3 в ZennoPoster появилась возможность использовать новый тип действий «C# код». Это действие позволяет писать вам куски кода на C#. У вас есть доступ к выполняющемуся проекту через переменную project и доступ к инстансу через переменную instance, так же есть вспомогательный класс Macros, есть простые команды для обработки текста и работы с файловой системой. Подробную информацию по доступным функциям смотрите в документации

C# макросы нужны для:

  • замены макросов из 3-й версии. Причем теперь даже вложенные макросы будут читаемы и понятны
  • компактного написания проекта, когда нужно несколько малозначительный действий объединить в одно
  • расширения функционала программы действиями. Довольно часто нас просят создать какую-то функцию, которая нужна очень ограниченному числу клиентов. Благодаря C# макросам теперь это можно сделать не усложняя программу и не дожидаясь нового релиза

Как добавить C# макрос

Просто перетащите действие «C# код» в проект, напишите код и настройте результирующею переменную.

Вы также можете вставить сниппет с кодом C#, подключив отдельный файл сниппета или папку со сниппетами:

Для этого нужно сохранить сниппет в виде текстового файла в папку Snippets в директории ZennoPoster.

Как оттестировать C# макрос

Для отладки C# макроса есть возможность тестирования. Нажмите кнопку «Тест», откроется тестер макросов. Учтите, что в тестере макросов нет доступа до списков, таблиц, и профиля, т.к проект не выполняется в момент тестирования. Значения переменных, используемых в тесте, нужно задать вверху в таблице вручную.
тестирование C# макроса
В тестере макросов доступен инстанс, в котором вы записываете проект, в результате чего вы даже можете отладить несколько конструкций управления инстансом, не запуская отладку всего проекта
тестирование управления инстансом

Мой первый макрос

По традиции напишем макрос, который возвращает «Hello wolrd!» Все просто пишем код

return "Hello wolrd!";

проект
результат отладки

Полезный макрос

например есть у вас есть файл с ключевыми словами, надо взять из него 10 случайных ключевых слов, объединить их через ; и положить в переменную. Путь к файлу с ключевыми словами храниться в переменной проекта pathToKeyWordFile

// читаем путь к файлу из переменной
var path = project.Variables["pathToKeyWordFile"].Value;
// читаем случайные 10 строк из файла
var lines = new List<string>();
for(int i = 0; i < 10; i++) {
	lines.Add(Macros.FileSystem.FileGetLine(path, "random"));
}
// возвращаем ключевые слова через ;
return string.Join(";", lines);

Преимущества C# макросов

  • Скорость работы, макросы компилируются перед запуском проекта, а не парсятся каждый раз в отличие от обычных действий
  • Потребление памяти на типичных операциях меньше, чем у обычных дейсвий
  • Можно подключать сторонние модули из GAC, например для работы с базами данных.

Ограничения C# макросов

Ограничение только одно, нельзя писать, макросы ZennoPoster на прямую в коде, доступ к переменным, спискам, таблицам и профилю осуществляется через переменную project. А доступ к инстансу - через переменную instance.

Пример использования C# макросов

ru/zennoposter/using-csharp-macro.txt · Последние изменения: 2020/11/28 13:29 — zymlex