在WCF和WCF之间动态公开服务引用Silverlight的

时间:2011-04-26 23:20:51

标签: silverlight wcf mef channelfactory

几天来,我一直在用砖头撞墙,试图找出我在WCF服务和Silverlight上遇到的问题。

我的问题是我有5个Silverlight项目模块,我动态地读入一个主Silverlight应用程序。这些模块中的每一个都有自己的业务层和DAL,因此它自己调用其WCF服务,但是当我将模块加载到并尝试运行WCF命令时,我收到一条错误消息,指出我的ServiceReference不存在,这是因为服务是模块“ServiceReference.config”的一部分,而不是Master项目服务参考。

我是否可以动态获取Master Silverlight项目以获取ChannelFactory的列表,然后创建频道并读入所有元数据并完全摆脱服务反馈?你如何避免使用服务参考?

非常感谢你的所有帮助,我想我对这个问题感到疯狂。

由于

罗比

1 个答案:

答案 0 :(得分:2)

是的,你可以这样做。您可以复制生成的文件“Reference.cs”,为此,您必须:

  1. 显示项目中的所有文件。
  2. 展开服务参考并查找Reference.cs。
  3. 现在您可以将其复制并作为普通类添加到项目中,并删除应用程序的服务引用。对于ChannelFactory,是的,您可以通过以下代码创建:

       ChannelFactory<IServiceContract> factory = new ChannelFactory<IServiceContract>(endpoint);
       IServiceContract channel = factory.CreateChannel();