Как запустить код в "общем коде"

PROforum

Client
Регистрация
17.08.2014
Сообщения
252
Благодарностей
19
Баллы
18
Есть код в "общем коде" как запустить его из кубика C#?
C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ZennoLab.CommandCenter;
using ZennoLab.InterfacesLibrary;
using ZennoLab.InterfacesLibrary.ProjectModel;
using ZennoLab.InterfacesLibrary.ProjectModel.Collections;
using ZennoLab.InterfacesLibrary.ProjectModel.Enums;
using ZennoLab.Macros;
using Global.ZennoExtensions;
using ZennoLab.Emulation;

namespace Myfirspoekt
{
    public class Class1
    {
        public string Hi()
        {
            return ("Приветствую!"); // Возвращаем строку
        }

        public void Hop(string strIP = "127.0.0.1", int intPort = 50606, string stringSite = "server")
        {
            ZennoLab.CommandCenter.Instance zennoInstance = new Instance(strIP, intPort, stringSite);
            // Инициализируем инстанс
            Tab Tab1 = zennoInstance.ActiveTab; // Ссылка на вкладку браузера
            Tab1.Navigate("https://zennolab.com/"); // Переход на целевую страницу
            Tab1.WaitDownloading(); // Ожидание загрузки страницы
            return; // Возвращение управления в код
        }



    }
}
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 367
Благодарностей
3 292
Баллы
113
public class Class1 { public string Hi() { return ("Приветствую!"); // Возвращаем строку } public void Hop(string strIP = "127.0.0.1", int intPort = 50606, string stringSite = "server") { ZennoLab.CommandCenter.Instance zennoInstance = new Instance(strIP, intPort, stringSite); // Инициализируем инстанс Tab Tab1 = zennoInstance.ActiveTab; // Ссылка на вкладку браузера Tab1.Navigate("https://zennolab.com/"); // Переход на целевую страницу Tab1.WaitDownloading(); // Ожидание загрузки страницы return; // Возвращение управления в код } }
Перенести класс и юзинги.
ZennoLab.CommandCenter.Instance zennoInstance = new Instance(strIP, intPort, stringSite);
Крайне рекомендую использовать существующий инстанс, передав его из сниппета в конструктор, а объект класса передавать через project.Context или ThreadStatic переменные.
 
  • Спасибо
Реакции: PROforum

PROforum

Client
Регистрация
17.08.2014
Сообщения
252
Благодарностей
19
Баллы
18
Я с# только изучаю. Не подскажите что конкретно надо прописать в кубике?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 689
Баллы
113

alex8020

Client
Регистрация
16.08.2016
Сообщения
37
Благодарностей
39
Баллы
18
C#:
var proekt = new Myfirspoekt.Class1();
string hi = proekt.Hi();
project.SendInfoToLog(hi, true);
proekt.Hop(); // если ip, port по умолчанию или...
//proekt.Hop("127.0.0.1", 50606, "server"); // ...если нужно изменить ip, port
 
  • Спасибо
Реакции: PROforum

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 367
Благодарностей
3 292
Баллы
113
Примера передачи объекта с инстансом в project.Context не будет, есть особенность что:
каждое действие C# кода создает объект инстанса и потом его убивает, так что надо каждый раз обновлять ссылку, или просто создать свой объект, но под свою ответственность
При выполнении в сторонней IDE (с CodeCreator'ом) такой особенности нет.
 
Регистрация
27.09.2019
Сообщения
69
Благодарностей
44
Баллы
18
Можно так
C#:
namespace Myfirspoekt
{
    public class Class1
    {
      private IZennoPosterProjectModel project;
      private Instance instance;
      public Class1(IZennoPosterProjectModel project, Instance instance)
      {
           this.project = project;
           this.instance = instance;
      }
      public void Hi()
       {
            project.SendInfoToLog("Приветствую!", true); // Возвращаем строку
       }
   }
}
Добавить в using
Код:
using Myfirspoekt;
В кубике:
C#:
var myCode = new Class1(project, instance);
myCode.Hi();
 
  • Спасибо
Реакции: PROforum

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)