Рабочий процесс 3.5 Свойство Activity имеет нулевое условие и больше нигде - PullRequest
0 голосов
/ 30 августа 2010

У меня есть действие, свойства которого выглядят примерно так (они настроены как правильные свойства зависимостей, я просто упростил это здесь):

public List<MyType> TypeList { get; set; }
public Int32 Index { get; set; }
public MyType SelectedType { get; set; }

и выполнение, которое просто делает это:

SelectedType = TypeList[Index];

TypeList и Index - это значения, которые я установил из других действий. Я не устанавливаю SelectedType на что-либо в свойствах действия, я просто позволяю ему быть установленным при выполнении.

Теперь я точно знаю, что SelectedType настроен правильно, я даже могу указать на другое действие и распечатать из него некоторые значения. Поэтому я совершенно уверен, что в этом нет ничего плохого.

Однако у меня есть операция if с условием, которое выглядит следующим образом:

((MyActivity)GetActivityByName("activity1")).SelectedType != null

, и оно оценивается как ложное (имеется в виду, что SelectedType оценивается как ноль). Я почти уверен, что приведение активности правильное (я все время так делаю), и если бы это было не так, я бы не получил исключение нулевой ссылки при попытке доступа к SelectedType? Поэтому я почти уверен, что здесь я не делаю ничего плохого, но по какой-то причине SelectedType обнуляется в этом состоянии, и нигде больше.

Это почти так же, как если бы условие оценивалось до выполнения действия, но действие наступает задолго до условия в рабочем процессе, поэтому я не понимаю, почему это так.

Может кто-нибудь пролить свет на это?

1 Ответ

0 голосов
/ 03 сентября 2010

Очевидно, это связано с циклом while, который вызывает клонирование действий. Я исправил это, привязав свойство Activity к свойствам рабочего процесса. Для получения дополнительной информации см. этот пост , который я разместил на форумах рабочих процессов.

...