WF4:宿主No-Service Workflow

我们在使用工作流服务时,一般会在工作流设计中使用Receive等消息活动,然后使用WorkflowServiceHost进行宿主,如果没有 Receive活动,工作流就无法接受发送来的消息,这个时候我们可以使用WorkflowHostingEndpoint类:

要宿主一个没有服务的工作流,需要继承WorkflowHostingEndpoint并重写 OnGetInstanceId,OnGetCreationContext,OnResolveBookmark。首先我们要声明一个服务契约,该契约包含一个创建新实例的服务操作,这个操作要传一个IDictionary<string,object>参数,这个契约隐式被 WorkflowHostingEndpoint实现。当宿主这个工作流时,使用WorkflowServiceHost的 AddServiceEndpoint方法添加。下面举例说明:

1.下面是项目结构:

2.首先定义服务契约,如下:

[ServiceContract(Name = "IWorkflowCreation")]
public interface IWorkflowCreation
{
         [OperationContract(Name = "Create")]
         Guid Create(IDictionary<string, object> inputs);
         [OperationContract(Name = "CreateWithInstanceId", IsOneWay = true)]
         void CreateWithInstanceId(Guid instanceId, IDictionary<string, object> inputs);
         [OperationContract(Name = "ResumeBookmark", IsOneWay = true)]
         void ResumeBookmark(Guid instanceId, string bookmarkName, string message);
}

时间: 2024-10-14 18:20:41

WF4:宿主No-Service Workflow的相关文章

WF从入门到精通(第三章):workflow实例

学习完本章,你将掌握: 1.使用不带参数和带参数二种方式初始化一个workflow实例 2.测定你运行中的workflow实例的状况 3.停止workflow实例 4.确定你的workflow空闲或终止的原因 一个workflow实例由一个或多个活动组成.(我们将在第七章开始介绍各种活动:"Basic Activity Operations.")"primary activity"或者"root activity"被称作"workflo

动态调用Webservice

web|动态 /// <summary> /// 根据指定的信息,调用远程WebService方法 /// </summary> /// <param name="url">WebService的http形式的地址</param> /// <param name="namespace">欲调用的WebService的命名空间</param> /// <param name="cl

动态引用webservice

整理过后的代码 通过这个类可以将webservice提供的某个命名空间下的全部的类的实例 并可以通过invokemethod方法调用某个类的实例的方法     1using System;  2using System.Collections.Generic;  3using System.Linq;  4using System.Web;  5using System.Xml;  6using System.Web.Services.Description;  7using System.Co

用osworkflow写一个请假例子

update:这个例子是不当的,更合适的例子请自己上javaeye上搜索个帖子.源码俺早就丢了,请不要再发邮件给我,谢谢.       osworkflow扩展非常容易,跟我们的应用结合起来使用也很容易.假设一个请假流程:员工请假,需要经过部门经理和人力资源部经理两人共同审批,只有当两人都许可时才通过,任一人驳回就失效,也就是一个and split和and Join流程,并且我们附加一个要求,当发送请假请求.许可和驳回这几个操作时都将发送一条消息给相应的用户.     流程定义文件如下: <?x

动态构建WebService时出现异常

问题描述 用的是网上很多人说的方法:///<summary>///根据指定的信息,调用远程WebService方法///</summary>///<paramname="url">WebService的http形式的地址</param>///<paramname="namespace">欲调用的WebService的命名空间</param>///<paramname="class

利用WCF双工模式实现即时通讯_C#教程

概述  WCF陆陆续续也用过多次,但每次都是浅尝辄止,以将够解决问题为王道,这几天稍闲,特寻了些资料看,昨晚尝试使用WCF的双工模式实现了一个简单的即时通讯程序,通过服务端转发实现客户端之间的通讯.这只是个Demo,没有考虑异常处理和性能问题.解决方案结构如下:   契约 using System; using System.Collections.Generic; using System.Linq; using System.ServiceModel; using System.Text;

WF4.0基础篇 (二十七) WCF Workflow Service 在WCF中使用WF

例子说明: WCF Workflow Service 创建启用WF的WCF服务 例1:一个用于计算加法的服务 添加WCF Workflow Service

WF4:Workflow Service中Correlation的基本使用

1.关联可以保证消息之间的正确路由,本文举一个简单的例子,首先定义一个流程表单类,如下: namespace CaryContract { [DataContract] public class FlowForm { [DataMember] public Guid FormNum { get; set; } [DataMember] public string FlowStatus { get; set; } [DataMember] public string ApplyName { get

WF4.0实战(二十一):Windows Server AppFabric中宿主WF4.0应用程序

在之前的一篇博文Windows Server AppFabric介绍上,简单的介绍了一下Windows Server AppFabric.这篇文章中,我将介绍一下,如 何在将WF4.0应用程序宿主到Windows Server AppFabric中,以及如何持久化配置和追踪配置. 首先,我将使用asp.net和WF4.0实现一个简单的Pizza订购系统.然后将这个应用系统宿主到Windows Server AppFabric上,实现持久化 ,跟踪等配置. Pizza订购系统: 分两部分,一个是a