Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las actividades creadas mediante la herencia de CodeActivity pueden implementar un comportamiento imperativo básico invalidando el Execute método .
Uso de CodeActivityContext
Se puede tener acceso a las características del tiempo de ejecución del flujo de trabajo desde dentro del método Execute usando los miembros del parámetro context
, del tipo CodeActivityContext. Las características disponibles a través de CodeActivityContext incluyen las siguientes:
Obtención y establecimiento de los valores de variables y argumentos.
Características de seguimiento personalizadas mediante Track.
Acceso a las propiedades de ejecución de la actividad mediante GetProperty.
Para crear una actividad personalizada que herede de CodeActivity
Abre Visual Studio 2010.
Seleccione Archivo, Nuevo y, a continuación, Proyecto. Seleccione Flujo de trabajo 4.0 en Visual C# en la ventana Tipos de proyecto y seleccione el nodo v2010 . Seleccione Biblioteca de actividad en la ventana Plantillas. Asigne al nuevo proyecto el nombre HelloActivity.
Haga clic con el botón derecho en Activity1.xaml en el proyecto HelloActivity y seleccione Eliminar.
Haga clic con el botón derecho en el proyecto HelloActivity y seleccione Agregar y, después, Clase. Nombre la nueva clase HelloActivity.cs.
En el archivo HelloActivity.cs, agregue las siguientes
using
directivas.using System.Activities; using System.Activities.Statements;
Haga que la nueva clase herede de CodeActivity agregando una clase base a la declaración de clase.
class HelloActivity : CodeActivity
Agregue funcionalidad a la clase agregando un Execute método .
protected override void Execute(CodeActivityContext context) { Console.WriteLine("Hello World!"); }
Utiliza el CodeActivityContext para crear un registro de seguimiento.
protected override void Execute(CodeActivityContext context) { Console.WriteLine("Hello World!"); CustomTrackingRecord record = new CustomTrackingRecord("MyRecord"); record.Data.Add(new KeyValuePair<String, Object>("ExecutionTime", DateTime.Now)); context.Track(record); }