0

我正在使用 Visual Studio 2010 的 Beta 2 版本来抢先学习使用 WF4,但遇到了持久性问题。在下面的代码中,如果我使用注释掉的 WorkflowApplication 对象的创建,持久性可以正常工作。如果我使用下面未注释的创建,我将字典传递给我想要传递的参数,那么持久性就会中断。任何想法为什么会这样,以及如何解决它?

        List<Approver> approversRequired = new List<Approver>();
        approversRequired.Add(new Approver("Dept Manager"));
        approversRequired.Add(new Approver("Center Manager"));

        Dictionary<String, Object> wfArguments = new Dictionary<string, object>();
        wfArguments.Add("ApproversRequired", approversRequired);

        //WorkflowApplication workflowApp = new WorkflowApplication(
        //    new WebCARSWorkflow());

        WorkflowApplication workflowApp = new WorkflowApplication(
            new WebCARSWorkflow(), wfArguments);

        InstanceStore instanceStore = new SqlWorkflowInstanceStore(
            @"Data Source=.\SQLEXPRESS;Integrated Security=True;Initial Catalog=WorkflowInstanceStore");
        InstanceView view = instanceStore.Execute(
            instanceStore.CreateInstanceHandle(), new CreateWorkflowOwnerCommand(),
            TimeSpan.FromSeconds(30));
        instanceStore.DefaultInstanceOwner = view.InstanceOwner;

        workflowApp.InstanceStore = instanceStore;

        workflowApp.PersistableIdle = (waie) => PersistableIdleAction.Unload;

        workflowApp.Run();
        WorkflowGuid.Text = workflowApp.Id.ToString();

        workflowApp.ResumeBookmark("RequestSubmitted", "Submitted");
4

1 回答 1

3

您作为参数传入的 Approver 是否使用 Serializable 或 DataContract 属性修饰?

您可以使用 Aborted 回调查看持久性错误

            workflowApp.Aborted = e => Console.WriteLine(e.Reason);
于 2010-01-11T10:37:36.527 回答