Właściwości a argumenty
Istnieje kilka opcji przekazywania danych do działania. Oprócz korzystania z InArgumentprogramu można również opracowywać działania, które odbierają dane przy użyciu standardowych właściwości CLR lub właściwości publicznych ActivityAction . W tym temacie omówiono sposób wybierania odpowiedniego typu metody.
Korzystanie z właściwości środowiska CLR
Podczas przekazywania danych do działania właściwości CLR (czyli metod publicznych korzystających z metod Get i Set do uwidaczniania danych) to opcja, która ma największe ograniczenia. Wartość parametru przekazanego do właściwości CLR musi być znana podczas kompilowania rozwiązania; ta wartość będzie taka sama dla każdego wystąpienia przepływu pracy. W ten sposób wartość przekazana do właściwości CLR jest podobna do stałej zdefiniowanej w kodzie; ta wartość nie może ulec zmianie dla okresu życia działania i nie można jej zmienić dla różnych wystąpień działania. MethodName jest przykładem właściwości CLR uwidocznionej przez działanie; nazwa metody, którą nie można zmienić wywołań działań na podstawie warunków środowiska uruchomieniowego i będzie taka sama dla każdego wystąpienia działania.
Używanie argumentów
Argumenty powinny być używane, gdy dane są oceniane tylko raz w okresie istnienia działania; oznacza to, że jego wartość nie zmieni się w okresie istnienia działania, ale wartość może być inna dla różnych wystąpień działania. Condition to przykład wartości, która zostanie obliczona raz; dlatego jest definiowany jako argument. Text to inny przykład metody, która powinna być zdefiniowana jako argument, ponieważ jest obliczana tylko raz podczas wykonywania działania, ale może być inna dla różnych wystąpień działania.
Korzystanie z działaniaAction
Jeśli dane muszą być oceniane wiele razy w okresie istnienia wykonywania działania, ActivityAction należy użyć elementu . Na przykład Condition właściwość jest obliczana dla każdej iteracji While pętli. Gdyby element InArgument był używany do tego celu, pętla nigdy nie zakończyłaby się, ponieważ argument nie zostanie ponownie zwarty dla każdej iteracji i zawsze zwróci ten sam wynik.