Condividi tramite


Utilizzo delle proprietà rispetto agli argomenti

Sono disponibili diverse opzioni per passare dati in un'attività. Oltre a usare InArgument, è possibile sviluppare attività che ricevono dati usando le proprietà CLR standard o le proprietà ActivityAction pubbliche. In questo argomento viene illustrato come selezionare il tipo di metodo appropriato.

Utilizzo delle proprietà CLR

Per il passaggio di dati in un'attività, le proprietà CLR (cioè metodi pubblici che usano routine Get e Set per esporre i dati) costituiscono la scelta che presenta le maggiori restrizioni. Il valore di un parametro passato in una proprietà CLR deve essere noto quando la soluzione viene compilata; questo valore sarà lo stesso per ogni istanza del flusso di lavoro. In questo modo, un valore passato in una proprietà CLR è simile a una costante definita nel codice; questo valore non può essere modificato per tutta la durata dell'attività e non può essere modificato per le diverse istanze dell'attività. MethodName è un esempio di una proprietà CLR esposta da un'attività; il nome del metodo chiamato dall'attività non può essere modificato in base alle condizioni di runtime e resterà uguale per ogni istanza dell'attività.

Utilizzo degli argomenti

Gli argomenti devono essere usati quando i dati vengono valutati solo una volta per tutta la durata dell'attività; ovvero, il valore non verrà modificato nel corso della durata dell'attività, ma potrà essere diverso per le diverse istanze dell'attività. Condition è un esempio di un valore che viene valutato una volta; per questo motivo viene definito come argomento. Text è un altro esempio di metodo che deve essere definito come argomento, poiché viene valutato solo una volta durante l'esecuzione dell'attività, ma può essere diverso per le istanze diverse dell'attività.

Uso di ActivityAction

Quando i dati devono essere valutati più volte durante la durata dell'esecuzione di un'attività, è necessario usare ActivityAction. Ad esempio, la proprietà Condition viene valutata per ogni iterazione del ciclo While. Se a tale scopo si utilizzasse InArgument, non si uscirebbe mai dal ciclo, poiché l'argomento non verrebbe rivalutato per ogni iterazione e restituirebbe sempre lo stesso risultato.