带有参数的 ASP.NET 工作流






1.86/5 (6投票s)
2006年12月19日

41726

852
在 asp.net 中使用带有参数的工作流

引言
使用 Microsoft Worflow Fundation 的简单 ASP.NET 网站。参数 - 网页 - 工作流。
使用代码
在 Global.asax 中定义运行时
void Application_Start(object sender, EventArgs e)
    {
        // Code that runs on application startup
        System.Workflow.Runtime.WorkflowRuntime workflowRuntime = new System.Workflow.Runtime.WorkflowRuntime();
        System.Workflow.Runtime.Hosting.ManualWorkflowSchedulerService manualService = new System.Workflow.Runtime.Hosting.ManualWorkflowSchedulerService();
        workflowRuntime.AddService(manualService);
        workflowRuntime.StartRuntime();
        Application["WorkflowRuntime"] = workflowRuntime;
    }
    void Application_End(object sender, EventArgs e)
    {
        //  Code that runs on application shutdown
        System.Workflow.Runtime.WorkflowRuntime workflowRuntime = Application["WorkflowRuntime"] as System.Workflow.Runtime.WorkflowRuntime;
        workflowRuntime.StopRuntime();
    }
参数
//Datos del Global.asax wr = Application["WorkflowRuntime"] as WorkflowRuntime; manualScheduler = wr.GetService(typeof(ManualWorkflowSchedulerService)) as ManualWorkflowSchedulerService; //parametros al workflow Dictionary<string, object> parameters = new Dictionary<string, object>(); parameters.Add("Valor", Int32.Parse(this.valor.Text)); //Eventos del WorkFlow wr.WorkflowCompleted += new EventHandler<WorkflowCompletedEventArgs>(wr_WorkflowCompleted); wr.WorkflowTerminated += new EventHandler<WorkflowTerminatedEventArgs>(wr_WorkflowTerminated); Type type = typeof(WorkflowLibrary1.Workflow1); WorkflowInstance wi = wr.CreateWorkflow(type, parameters); wi.Start(); //Ejecutar workflow manualScheduler.RunWorkflow(wi.InstanceId);
工作流
namespace WorkflowLibrary1
{
    public sealed partial class Workflow1: SequentialWorkflowActivity
    {
        public Workflow1()
        {
            InitializeComponent();
        }
      private string m_Resultado="Rechazado";
      private int m_Valor;
      private DateTime m_FechaHora = DateTime.Now;
       public string Resultado
       {
           get { return m_Resultado; }
       }
       public int Valor
       {
           get { return m_Valor; }
           set { m_Valor = value; }
       }
       public DateTime FechaHora
       {
           get { return m_FechaHora; }
       }
        private void ExecuteCodeActivity1(object sender, EventArgs e)
        {
            if (m_Valor > 100)
            {
                m_Resultado = "Aceptado";
            }
        }
    }
}
工作流
在 ASP.net 中简单使用工作流。使用参数
