VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Objective-C编程 >
  • WF3.5的SendActivity、ReciveActivity与WorkServiceHost5

制作者:剑锋冷月 单位:无忧统计网,www.51stat.net
 

  SendActivity

  调用WCF服务

  SendActivity不需要WorkflowServiceHost

  SendActivity 支持的消息交换模式包括:

 

单向发送消息 发送消息,但不需要服务的响应
发送请求 - 接收答复 发送消息,并等待从服务接收响应
发送请求 - 接收错误 发送消息,并等待从服务接收响应或错误

 

  属性

 

ServiceOperationInfo WCF服务接口
CustomAddress WCF服务通信的地址。
Context 返回一个字典,该字典包含用于客户端与服务(将与客户端通信)之间的通信的上下文,包括关联标识之类的内容。
ParameterBindings 获取WCF服务的形参表中可绑定参数的集合
ChannelToken 用于建立与客户端通道之间的关联

 

  Name :此关联的名称

  OwnerActivityName :要关关联的 Activity 的名称

  EndpointName : 用于与服务通信的Endpoint

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

 

  事件

 

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服务

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

  2.在工作流中添加SendActivity

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

  3.设置WCF服务接口

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

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

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

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

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

  5.

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

  运行结果

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

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


相关教程