我需要创建一个客户渠道工厂来调用IIS中托管的WCF Wrokflow服务。在运行时,我只能知道应该调用哪个工作流以及需要调用哪个方法。 任何人都可以帮助一个例子吗?
答案 0 :(得分:2)
您在客户端有关工作流程服务的哪些信息?如果你有合同(服务合同,例如当指向xamlx服务时由svcutil / add service reference生成的服务合同)和端点地址,那么你可以直接使用channel工厂。例如,默认的“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's dynamic proxy之类的东西在运行时创建代理,以及使用动态代理方法调用服务操作。
答案 1 :(得分:0)
Vipuls动态代理(http://blogs.msdn.com/b/vipulmodi/archive/2006/11/16/dynamic-programming-with-wcf.aspx)完美运作.. 谢谢你......