1

几天来,我一直在用头撞砖墙,试图解决我在使用 WCF 服务和 Silverlight 时遇到的问题。

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

我是否可以动态地让 Master Silverlight 项目获取 ChannelFactory 的列表,然后创建通道并读取所有元数据并完全摆脱服务引用?您如何避免不得不使用服务引用?

非常感谢您的所有帮助,我认为我会为此而发疯。

谢谢

罗比

4

1 回答 1

2

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

  1. 显示项目中的所有文件。
  2. 展开服务参考并查找 Reference.cs。

现在您可以复制它并将其作为普通类添加到您的项目中,并删除应用程序的服务引用。对于 ChannelFactory,是的,您可以通过以下代码创建:

   ChannelFactory<IServiceContract> factory = new ChannelFactory<IServiceContract>(endpoint);
   IServiceContract channel = factory.CreateChannel();
于 2011-04-27T02:48:24.683 回答