Propiedades y Argumentos
Hay varias opciones disponibles para pasar datos en una actividad. Además de utilizar InArgument, las actividades también se pueden desarrollar para recibir datos utilizando las propiedades CLR estándar o las propiedades ActivityAction públicas. En este tema se analiza la forma de seleccionar el tipo de método adecuado.
Utilizar propiedades CLR
Cuando se pasan datos en una actividad, las propiedades CLR (es decir, los métodos públicos que utilizan rutinas Get y Set para exponer los datos) son la opción con mayor número de restricciones. El valor de un parámetro pasado en una propiedad CLR debe conocerse cuando la solución se ha compilado; este valor será el mismo para todas las instancias del flujo de trabajo. De esta manera, un valor pasado en una propiedad CLR es similar a una constante definida en código; este valor no puede cambiar mientras dura la actividad, y no se puede cambiar para distintas instancias de la actividad. MethodName es un ejemplo de una propiedad CLR expuesta por una actividad; el nombre del método al que la actividad llama no se puede cambiar según las condiciones del tiempo de ejecución y será el mismo para cada instancia de la actividad.
Utilizar argumentos
Se deben usar argumentos cuando los datos se evalúan solo una vez durante la duración de la actividad; es decir, su valor no cambiará durante la duración de la actividad, pero el valor puede ser diferente para distintas instancias de la actividad. Condition es un ejemplo de un valor que se evalúa una vez; por consiguiente se define como argumento. Text es otro ejemplo de un método que debe definirse como argumento, ya que se evalúa solo una vez durante la ejecución de la actividad, pero puede ser diferente para distintas instancias de la actividad.
Utilizar ActivityAction
Cuando es necesario evaluar los datos varias veces durante la ejecución de una actividad, debe utilizarse ActivityAction. Por ejemplo, la propiedad Condition se evalúa para cada iteración del bucle While. Si se utiliza InArgument con este fin, nunca se saldrá del bucle, ya que el argumento no se volverá a evaluar para cada iteración y siempre se devolverá el mismo resultado.