首页 > 编程开发 > Objective-C编程 >
-
WF3.5的SendActivity、ReciveActivity与WorkServiceHost5
SendActivity
调用WCF服务
SendActivity不需要WorkflowServiceHost
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