【发布时间】:2011-06-23 13:30:16
【问题描述】:
我需要创建一个自定义通道工厂来调用托管在 IIS 中的 WCF Wrokflow 服务。只有在运行时,我才能知道应该调用哪个工作流以及需要调用哪个方法。 任何人都可以提供相同的示例吗?
【问题讨论】:
标签: wcf dynamic workflow-foundation-4 channelfactory
我需要创建一个自定义通道工厂来调用托管在 IIS 中的 WCF Wrokflow 服务。只有在运行时,我才能知道应该调用哪个工作流以及需要调用哪个方法。 任何人都可以提供相同的示例吗?
【问题讨论】:
标签: wcf dynamic workflow-foundation-4 channelfactory
您在客户处拥有哪些有关工作流服务的信息?如果你有合约(服务合约,比如 svcutil / add service reference 当指向 xamlx 服务时生成的合约)和端点地址,那么你可以直接使用通道工厂。例如,默认的“WCF 工作流服务应用程序”在 xamlx 地址声明一个端点,带有 basicHttpBinding。
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's dynamic proxy之类的东西在运行时创建代理,然后调用使用动态代理方法的服务操作。
【讨论】:
Vipuls 动态代理 (http://blogs.msdn.com/b/vipulmodi/archive/2006/11/16/dynamic-programming-with-wcf.aspx) 完美运行.. 谢谢大佬。。
【讨论】: