2010-08-30 28 views
0

J'ai une activité qui a des propriétés qui ressemblent à ceci (ils sont mis en place en tant que propriétés de dépendance appropriées, je continuais simple ici):Flux de travail 3.5 propriété d'activité est nulle en état et nulle part ailleurs

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

et une exécution qui fait ceci:

SelectedType = TypeList[Index]; 

TypeList et Index sont des valeurs que je retrouve à partir d'autres activités. Je ne définis pas SelectedType à quoi que ce soit dans les propriétés de l'activité, je le laisse simplement se définir dans l'exécution.

Maintenant que je sais pertinemment que SelectedType est réglé correctement, je peux même lui indiquer une autre activité et en imprimer des valeurs. Je suis donc plutôt convaincu qu'il n'y a rien de mal à cette activité.

Cependant, j'ai une si l'activité avec une condition qui ressemble à ceci:

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

et la valeur false (ce qui signifie qu'il a évalué SelectedType comme nulle). Je suis assez sûr que cette distribution d'activité est correcte (je fais des choses comme ça tout le temps), et si ce n'était pas le cas je n'aurais pas une exception de référence NULL en essayant d'accéder à SelectedType? Donc, je suis sûr que je ne fais rien de mal ici, mais pour une raison quelconque, SelectedType arrive à zéro dans cette condition et nulle part ailleurs. C'est presque comme si la condition était évaluée avant que l'activité soit exécutée, mais l'activité arrive bien avant la condition dans le flux de travail, donc je ne vois pas pourquoi ce serait le cas.

Quelqu'un peut-il nous éclairer à ce sujet?

Répondre

0

Apparemment, il s'agit de la boucle while qui provoque le clonage des activités. Je l'ai corrigé en liant la propriété activity aux propriétés de workflow. Pour plus d'informations, voir this post que j'ai mis en place sur les forums de flux de travail.