我需要创建一个客户通道工厂来调用托管在 IIS 中的 WCF Wrokflow 服务。只有在运行时,我才能知道应该调用哪个工作流以及需要调用哪个方法。任何人都可以提供同样的例子吗?
问问题
1030 次
2 回答
2
您在客户处拥有哪些有关工作流服务的信息?如果你有合约(服务合约,比如 svcutil / add service reference 当指向 xamlx 服务时生成的合约)和端点地址,那么你可以直接使用通道工厂。例如,默认的“WCF 工作流服务应用程序”使用 basicHttpBinding 在 xamlx 地址声明一个端点。
string address = "http://localhost:27962/Service1.xamlx";
Binding binding = new BasicHttpBinding();
ChannelFactory<IService> factory = new ChannelFactory<IService>(binding, new EndpointAddress(address);
IService proxy = factory.CreateChannel();
var result = proxy.GetData(new GetDataRequest { @int = 1234 });
如果没有合约/绑定,只有xamlx地址,又想在运行时动态创建代理,可以使用Vipul的动态代理之类的东西在运行时创建代理,调用服务操作使用动态代理方法。
于 2011-06-23T17:16:47.283 回答
0
Vipuls 动态代理 (http://blogs.msdn.com/b/vipulmodi/archive/2006/11/16/dynamic-programming-with-wcf.aspx) 工作完美.. 谢谢伙计..
于 2011-06-28T17:34:46.663 回答