У меня есть пользовательская активность, в которой пользователь выбирает переменную из выпадающего списка в восстановленной среде дизайнера. Моя проблема в том, что я хочу получить имя переменной вместе с ее значением.
Предположим, что у моего пользовательского действия есть «InArgument MyVar {get; set;}». В настоящее время я получаю имя переменной, анализируя "((Microsoft.VisualBasic.Activities.VisualBasicValue) MyVar.Expression) .ExpressionText". Есть ли лучший способ?Получить имя переменной из InArgument
0
A
ответ
0
Вы не можете точно знать истинное значение аргумента до времени выполнения.
Но, вы можете взять его по умолчанию значение, используя эти методы расширения:
public static T GetImediateValueOrDefault<T>(Activity<T> activity, ModelItem modelItem)
{
if (activity == null)
return default(T);
var exprAsLiteral = activity as Literal<T>;
if (exprAsLiteral != null)
return exprAsLiteral.Value;
var exprAsVbValue = activity as Microsoft.VisualBasic.Activities.VisualBasicValue<string>;
if (exprAsVbValue != null)
return modelItem.GetDefaultValueOfScopedVariable<T>(exprAsVbValue.ExpressionText);
return default(T);
}
public static T GetDefaultValueOfScopedVariable<T>(this ModelItem modelItem, string variableName)
{
IEnumerable<ModelItem> scopedVariables = modelItem.GetScopedVariables();
ModelItem variableModelItem = scopedVariables.FirstOrDefault(v => Equals(variableName, v.Properties["Name"].ComputedValue));
if (variableModelItem == null)
throw new KeyNotFoundException();
Variable<T> variable = variableModelItem.GetCurrentValue() as Variable<T>;
if (variable == null)
return default(T);
return GetImediateValueOrDefault(variable.Default, modelItem);
}
не гарантируется, используйте с осторожностью
Смежные вопросы
- 1. InArgument IEnumerable
- 2. получить имя переменной из строки
- 3. PHP получить имя переменной из другой переменной
- 4. Java: получить имя переменной из переменной
- 5. Как получить ActivityContext, чтобы получить значение InArgument
- 6. Set InArgument значение от cs
- 7. Generic InArgument генерирует исключение, пытающееся получить значение
- 8. Android получить имя переменной
- 9. Получить имя переменной массива
- 10. Получить имя функции из переменной цикла
- 11. Как получить ответ имя переменной из summary.glm
- 12. Получить имя переменной из базы данных
- 13. Получить имя переменной из вызываемой функции
- 14. Java - получить имя переменной из двухслойного массива
- 15. Получить имя переменной из экземпляра объекта
- 16. Как получить имя таблицы из переменной диапазона?
- 17. node.js: получить имя переменной
- 18. Рекурсивно получить имя переменной
- 19. VBA: получить имя переменной
- 20. Получить имя локальной переменной
- 21. Как получить имя переменной?
- 22. получить содержимое от переменной, чье имя взято из другой переменной
- 23. Получить значение переменной, имя которого состоит из самой переменной
- 24. Использование назначенной переменной для параметра InArgument <>
- 25. Получить имя файла от переменной
- 26. Получить имя файла в переменной
- 27. Как сделать значение InArgument зависящим от значения другого параметра InArgument во время разработки
- 28. Получить Получить данные с переменной Получить имя
- 29. Получить имя переменной по адресу
- 30. PHP - как получить имя переменной?
Вы видите, во время выполнения, когда переменная передается в InArgument Я хочу получить имя передаваемой переменной. – Arvand
@Arvand Вы не цените значение во время разработки, вы действительно хотите его во время выполнения - это правильно? Просто для уточнения, почему вы хотите имя переменной во время выполнения? –
, потому что переменные создаются на основе бизнес-логики, поэтому при открытии конструктора переменные автоматически создаются в файле xaml, и бизнес имеет смысл в отношении переменных, поэтому во время выполнения я передаю словарь from моя обычная деятельность для других методов. –
Arvand