Проект в проекте списки?

  • Автор темы Автор темы valera-k
  • Дата начала Дата начала

valera-k

Client
Регистрация
26.12.2020
Сообщения
136
Реакции
14
Баллы
18
Доброго времени суток,
переменные передаются в подпроект и обратно, а списки возможно передать?
Через файл не подходит для многопотока или одновременной работы нескольких одинаковых проектов.
 
Доброго времени суток,
переменные передаются в подпроект и обратно, а списки возможно передать?
Через файл не подходит для многопотока или одновременной работы нескольких одинаковых проектов.
Добрый день.
Список можно объединить в переменную и передать в подпроект и там развернуть снова в список и работать с ним.
Кубик "Операции над списком - Объединить элементы списка".
Кубик "Обработка текста - В список".
 
Последнее редактирование:
  • Оценить
Реакции: izubr, djaga и valera-k
Доброго времени суток,
переменные передаются в подпроект и обратно, а списки возможно передать?
Через файл не подходит для многопотока или одновременной работы нескольких одинаковых проектов.
Привет. Можно ещё через project.Context. Assemblies Documentation
Проект в проекте (Вложенные проекты)

Не забудьте поставить галочку:
97899


Результат (кликабельно):
1664296697209.png

Решение:
Обратите внимание на выделенные строки. Остальное для наглядности.
Кубик C# в основном шаблоне:
Развернуть Свернуть Копировать
project.Context["list"] = project.Lists["список"].ToList();

// Вывод для наглядности
project.SendInfoToLog("Вывод из основного шаблона:");
foreach(string s in project.Context["list"])
{
    project.SendInfoToLog(s);
}

Кубик C# во вложенном проекте:
Развернуть Свернуть Копировать
List<string> list = project.Context["list"];

// Вывод для наглядности
project.SendInfoToLog($"Вывод из вложенного шаблона:");
foreach(string s in list)
{
    project.SendInfoToLog($"{s}");
}

// Пример: Добавляю в список значения для дальнейшей работы
project.Lists["список_Шаблон_2"].AddRange(project.Context["list"]);

Чтобы работать с многопотоком, можно под каждый поток создавать своё имя Context или через lock

Если возникнут вопросы пишите в личные сообщения, вся информация есть в подписи ↓

Приложил шаблоны для тестов. ↓ Скачать нужно оба и положить рядом в одну папку.
 

Вложения

Последнее редактирование:
А как вернуть из вложенного шаблона измененный список в основной шаблон ? Теми же шагами не работает
Привет. Можно ещё через project.Context. Assemblies Documentation
Проект в проекте (Вложенные проекты)

Не забудьте поставить галочку:
Посмотреть вложение 97899

Результат (кликабельно):
Посмотреть вложение 97896

Решение:
Обратите внимание на выделенные строки. Остальное для наглядности.
Кубик C# в основном шаблоне:
Развернуть Свернуть Копировать
project.Context["list"] = project.Lists["список"].ToList();

// Вывод для наглядности
project.SendInfoToLog("Вывод из основного шаблона:");
foreach(string s in project.Context["list"])
{
    project.SendInfoToLog(s);
}

Кубик C# во вложенном проекте:
Развернуть Свернуть Копировать
List<string> list = project.Context["list"];

// Вывод для наглядности
project.SendInfoToLog($"Вывод из вложенного шаблона:");
foreach(string s in list)
{
    project.SendInfoToLog($"{s}");
}

// Пример: Добавляю в список значения для дальнейшей работы
project.Lists["список_Шаблон_2"].AddRange(project.Context["list"]);

Чтобы работать с многопотоком, можно под каждый поток создавать своё имя Context или через lock

Если возникнут вопросы пишите в личные сообщения, вся информация есть в подписи ↓

Приложил шаблоны для тестов. ↓ Скачать нужно оба и положить рядом в одну папку.



UPD - Прочитал комментарий от Sergodjan https://zennolab.com/discussion/threads/proekt-v-proekte-spiski.106830/post-707738
Вопрос снимается, спасибо
 
Последнее редактирование:
  • Оценить
Реакции: Sergodjan

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