- Регистрация
- 08.11.2015
- Сообщения
- 1 788
- Благодарностей
- 2 454
- Баллы
- 113
Всем привет!
Мы знаем, что в Зеннопостере есть переменные.
Мы можем их создать вручную или они могут быть созданы автоматически (VariableGroupTypeV4.AutoGenerated или VariableGroupTypeV4.UserDefined отвечают за вкладку Свои или Авто, при этом вкладки Окружение, Глобальные, Json, Xml - нет в этом перечислении).
В Зеннопостере переменная чуть больше, чем строка - это объект, содержащий несколько полей/свойств - Имя, Значение, Значение по-умолчанию, Примечание, Тип (Своя/Авто).
Код ниже выводит значения этих полей. Но, мне не получилось вытащить информацию о поле Значение по-умолчанию.
Собственно вопрос - как это сделать?
Мы можем перенести автоматически переменную с одной группы в другую - например из Свои в Авто и обратно.
Это позволяет строить логику шаблона в виде если переменная не находится в нужной группе - значит выполняем какое-то другое действие (или банально использовать в виде обычного значения bool включая или выключая возможность продолжения работы шаблона).
Мы можем также переименовать переменную в любое время:
Также можно поменять комментарий/примечание:
И также естественно мы можем поменять значение (собственно многие больше, чем изменение значения никак по другому не используют эти переменные):
Как поменять содержимое поля Значение по-умолчанию в процессе выполнения шаблона (чтобы следующий поток который стартанет уже использовал новое значение)?
Мы знаем, что в Зеннопостере есть переменные.
Мы можем их создать вручную или они могут быть созданы автоматически (VariableGroupTypeV4.AutoGenerated или VariableGroupTypeV4.UserDefined отвечают за вкладку Свои или Авто, при этом вкладки Окружение, Глобальные, Json, Xml - нет в этом перечислении).
В Зеннопостере переменная чуть больше, чем строка - это объект, содержащий несколько полей/свойств - Имя, Значение, Значение по-умолчанию, Примечание, Тип (Своя/Авто).
Код ниже выводит значения этих полей. Но, мне не получилось вытащить информацию о поле Значение по-умолчанию.
Собственно вопрос - как это сделать?
C#:
string name = "temp";
ILocalVariable lv = project.Variables[name];
project.SendInfoToLog(string.Format(@"1. Group: {0}",lv.Group));
project.SendInfoToLog(string.Format(@"2. Name: {0}",lv.Name));
project.SendInfoToLog(string.Format(@"3. Value: {0}",lv.Value));
project.SendInfoToLog(string.Format(@"4. по-умолчанию ????")); // как узнать?
project.SendInfoToLog(string.Format(@"5. Comment: {0}",lv.Comment));
Мы можем перенести автоматически переменную с одной группы в другую - например из Свои в Авто и обратно.
Это позволяет строить логику шаблона в виде если переменная не находится в нужной группе - значит выполняем какое-то другое действие (или банально использовать в виде обычного значения bool включая или выключая возможность продолжения работы шаблона).
C#:
string name = "temp";
ILocalVariable lv = project.Variables[name];
project.SendInfoToLog(string.Format(@"1. Group: {0}",lv.Group));
lv.Group = VariableGroupTypeV4.AutoGenerated;
project.SendInfoToLog(string.Format(@"1. Group: {0}",lv.Group));
lv.Group = VariableGroupTypeV4.UserDefined;
project.SendInfoToLog(string.Format(@"1. Group: {0}",lv.Group));
C#:
string name = "temp";
ILocalVariable lv = project.Variables[name];
project.SendInfoToLog(string.Format(@"2. Name: {0}",lv.Name));
lv.Name = "temp777";
project.SendInfoToLog(string.Format(@"2. Name: {0}",lv.Name));
lv.Name = "temp";
project.SendInfoToLog(string.Format(@"2. Name: {0}",lv.Name));
C#:
string name = "temp";
ILocalVariable lv = project.Variables[name];
project.SendInfoToLog(string.Format(@"5. Comment: {0}",lv.Comment));
lv.Comment = "примечание 1";
project.SendInfoToLog(string.Format(@"5. Comment: {0}",lv.Comment));
lv.Comment = "примечание 2";
project.SendInfoToLog(string.Format(@"5. Comment: {0}",lv.Comment));
C#:
string name = "temp";
ILocalVariable lv = project.Variables[name];
project.SendInfoToLog(string.Format(@"3. Value: {0}",lv.Value));
lv.Value = "значение 1";
project.SendInfoToLog(string.Format(@"3. Value: {0}",lv.Value));
lv.Value = "значение 2";
project.SendInfoToLog(string.Format(@"3. Value: {0}",lv.Value));