Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Serialization 重新宿主WF4设计器-如何保存和执行通过重新宿主设计器创建的工作流_Serialization_Workflow Foundation 4 - Fatal编程技术网

Serialization 重新宿主WF4设计器-如何保存和执行通过重新宿主设计器创建的工作流

Serialization 重新宿主WF4设计器-如何保存和执行通过重新宿主设计器创建的工作流,serialization,workflow-foundation-4,Serialization,Workflow Foundation 4,我希望在一个集成解决方案中使用Windows Workflow 4时有一些清晰性,特别是在重新定位设计器和执行由业务用户创建的工作流方面 目的是创建所需的自定义活动并将其编译为dll,然后使用重新托管的设计器部署该dll,从而允许业务用户创建/配置使用这些活动的工作流-然后业务用户将工作流保存为XAML,它可以存储在应用程序已知的位置(数据库、文件系统等),然后当应用程序需要执行工作流时,它可以使用XamlServices.Load从特定位置加载工作流并作为动态活动执行 如何保存工作流,以便以后

我希望在一个集成解决方案中使用Windows Workflow 4时有一些清晰性,特别是在重新定位设计器和执行由业务用户创建的工作流方面

目的是创建所需的自定义活动并将其编译为dll,然后使用重新托管的设计器部署该dll,从而允许业务用户创建/配置使用这些活动的工作流-然后业务用户将工作流保存为XAML,它可以存储在应用程序已知的位置(数据库、文件系统等),然后当应用程序需要执行工作流时,它可以使用XamlServices.Load从特定位置加载工作流并作为动态活动执行

如何保存工作流,以便以后可以使用属性和其他配置值对其进行重新序列化?我尝试过反序列化从设计器中保存的Xaml文件,并使用XamlServices.save()

使用书签/持久性是否存在任何潜在问题


作为一个相关问题,是否有任何简单的方法可以在工作流中“返回”,而无需在每个流程图元素上定义返回分支?我正在考虑将工作流与用户界面集成,以便用户输入响应(wf将对其进行处理),并根据输入做出决策。通过UI,用户应该能够“返回”到以前的输入。

您可以使用ActivityXamlServices.Load(路径)加载XAML文件。它将返回一个活动,实际上是一个动态活动,您可以使用WorkflowApplication来运行它


请参阅示例。

谢谢Maurice,自WF4 Beta 1以来,我一直密切关注您的帖子,您提供了许多有用的见解和提示,特别是在目前阶段“官方”指导的数量有限的情况下。按照您的示例,我现在已经启动并运行了一个工作示例,可以在重新托管的设计器中进行编辑,并使用单独的主机运行。您是否认为建议工作流相对独立,并使用消息传递/WCF与应用程序的其他区域通信?(即,不直接在另一个应用程序集上使用InvokeMethod)?AppFabric似乎暗示了这一点。我不确定这是否始终是最好的方法,事实上我对此表示怀疑,但微软似乎在推动我们这样做。使用WorkflowServiceHost给我们带来了最大的好处,特别是在长时间运行的工作流方面。从我所读到的关于AppFabrik WCF的内容来看,这是一条路要走。现在,我认为肯定有其他通信/托管内容的位置,所以不要立即关闭workflow应用程序和书签。在我的情况下,我的workflow.xaml驻留在服务器中,只能通过WCF服务访问。通过从数据库或WCF读取将工作流重新驻留到工作流设计器中的任何示例?