0
저는 Visual Studio 2010 베타 2 버전을 사용하여 WF4 사용법을 배우기 시작했습니다. 지속성 문제가 발생했습니다. 아래 코드에서 WorkflowApplication 객체의 주석 처리 된 깔개를 사용하면 지속성이 정상적으로 작동합니다. 아래에있는 주석 처리되지 않은 작성을 사용하면 전달하려는 인수에 대한 사전을 전달하면 지속성이 깨집니다. 이것이 어떤 이유 일 수 있으며 그것을 고치는 방법은 무엇입니까?Windows Workflow Foundation 4.0 및 지속성
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");
를 사용하여 오류 persitence 볼 수 있지만 DataContract에 대해 알고하지 않습니다, 당신은 내게 그에 대한 자세한 정보를 제공 할 수 있습니까? –
DataContract는 WF4가 기본적으로 값을 데이터베이스에 저장하는 데 사용하는 WCF NetDataContractSerializer와 함께 사용됩니다. 이를 위해서는 유형을 직렬화 할 수 있어야합니다. 이렇게하는 데는 두 가지 방법이 있으며, 모든 비공개 필드가 직렬화되는 Serializable 특성을 사용하여 쉽게 사용할 수 있습니다. 다른 옵션은 DataContract 특성을 사용하는 것입니다.이 특성은 직렬화해야 할 대상과이 작업이 수행되는 방식을 완벽하게 제어합니다. 직렬화 오류가있는 경우 WorklfowApplication.Aborted 콜백에서 세부 정보를 제공합니다. – Maurice