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

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


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

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

ru:zennoposter:using-csharp-macro

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

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

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

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

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

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

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

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

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

По традиции напишем макрос, который возвращает «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 · Последние изменения: 2018/10/23 11:36 — zymlex