Как можно передать данные из Глобальной Переменной в свою библиотеку?

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
773
Благодарностей
517
Баллы
93
Всем привет, есть задача создать общий лист, доступ к которому будут иметь разные шаблоны. Данную задачу решают Глобальные переменные, но возникла проблема, что данные которые лежат в глобальной переменной не передаются в свою библиотеку. Есть ли возможность получить доступ к глобальным переменным из своей библиотеки?

Создаю глобальную переменную

C#:
string namespaceName = "Test";
string globVarName = "Lst";

// Выполняется в начале проекта
lock (project.GlobalVariables)
{
    // проверка на существование глобальной переменной
    try {
        // попытка получения объекта (переход на catch при неудаче)
        var syncobj = project.GlobalVariables[namespaceName, globVarName];
        return syncobj.ToString(); // возврат его значения (отобразится в логе PM, если возможно)
    } catch (KeyNotFoundException ex) {
        // создание объекта синхронизации и его установка, объект может быть любым, но не должен меняться!
        var lst = new List<string>();
        project.GlobalVariables.SetVariable(namespaceName, globVarName, lst);
    }
}
Стучусь в переменную:
C#:
var lst = project.GlobalVariables[Test, Lst].Value as List<string>;
В PM вижу нужный мне список
У себя в библиотеке вижу null;
 

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
773
Благодарностей
517
Баллы
93
Доп. информация.
Изначально я работал без глобальных переменных и использовал static List. Но возникла другая проблема, после 3-его запуска(потока) почему-то теряется ссылка на static List и работа проекта сразу валится в Исключение.

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

UPD
Решил свою задачу через статику, как обычно написал говнокод, который неверно работал(facepalm)
 
Последнее редактирование:

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 529
Благодарностей
3 375
Баллы
113
Вы делаете ещё хуже. Используйте базу данных.
 

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