WF3.5 的SendActivity、ReceiveActivity与WorkflowServiceHost(1)

SendActivity

 

  1. 调用WCF服务
  2. SendActivity不需要WorkflowServiceHost
  3. SendActivity 支持的消息交换模式包括:

单向发送消息

发送消息,但不需要服务的响应

发送请求 - 接收答复

发送消息,并等待从服务接收响应

发送请求 - 接收错误

发送消息,并等待从服务接收响应或错误

 

属性

ServiceOperationInfo

WCF服务接口

CustomAddress

WCF服务通信的地址。

Context

返回一个字典,该字典包含用于客户端与服务(将与客户端通信)之间的通信的上下文,包括关联标识之类的内容。

ParameterBindings

获取WCF服务的形参表中可绑定参数的集合

ChannelToken

用于建立与客户端通道之间的关联

Name :此关联的名称

OwnerActivityName :要关关联的 Activity 的名称

EndpointName : 用于与服务通信的Endpoint

 

事件

BeforeSend

将消息发送到服务之前发生。

AfterResponse

在接收到来自服务的响应后发生

 

 

调用普通WCF服务

WCF服务

namespace WCFServer

{

class Program

{

static void Main(string[] args)

{

a();

}

static void a()

{

 

Uri WCFUrl = new Uri("http://localhost:567/wxwinter/");

ServiceHost host = new ServiceHost(typeof(wcfService), WCFUrl);

 

 

ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();

behavior.HttpGetEnabled = true;

host.Description.Behaviors.Add(behavior);

 

 

string EndpointUrl = "EndpointUrl";

host.AddServiceEndpoint(typeof(IwcfService), new BasicHttpBinding(), EndpointUrl);

 

System.Console.WriteLine(host.BaseAddresses[0].ToString());

host.Open();

 

Console.ReadKey();

 

 

host.Close();

}

 

}

 

 

[System.ServiceModel.ServiceContract]

public interface IwcfService

{

[System.ServiceModel.OperationContract]

string test1(int value);

 

[System.ServiceModel.OperationContract]

userData test2(userData value);

}

 

 

public class wcfService : IwcfService

{

public wcfService()

{

System.Console.WriteLine("new {0}", System.DateTime.Now);

}

 

public string test1(int value)

{

System.Console.WriteLine("test1:{0}", value);

return "转入的是:" + value.ToString();

}

 

public userData test2(userData value)

{

System.Console.WriteLine("test2:{0}", value.userDataValue);

value.userDataValue = value.userDataValue + ":Service已收到";

return value;

}

}

 

[System.Runtime.Serialization.DataContract]

public class userData

{

[System.Runtime.Serialization.DataMember]

public string userDataValue

{

get;

set;

}

}

}

 

工作流

1.引用WCF服务

 

2.在工作流中添加SendActivity

 

3.设置WCF服务接口

 

4.建立与客户端通道之间的关联

 

5.

运行结果

 

例子:http://files.cnblogs.com/wxwinter/TestSendActivity.rar


 

WF3.5 SendActivityReceiveActivityWorkflowServiceHost (2)

WF3.5 SendActivityReceiveActivityWorkflowServiceHost (3)

WF3.5 SendActivityReceiveActivityWorkflowServiceHost (4)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值