2

我目前需要从 Silverlight (3.0) 应用程序中访问 WCF 服务,但我需要它是动态的。
我可以访问:服务接口(ServiceContracts)和数据定义(DataContracts)。
我需要什么:运行时生成/创建的 WCF 客户端代理。

有一些解决方案吗?

4

3 回答 3

1

查看WCF 动态代理示例项目

于 2010-01-27T10:53:23.383 回答
0

我发现了这个“旧”帖子(2008 年 9 月 16 日)。
但我无法让它在 Silverlight 3.0 下正常运行(没有尝试使用以前版本的 Silverlight)。

WorkSight 博客 » 博客存档 » Silverlight 中的动态 WCF 客户端代理

让我们知道你们中的任何人是否设法使它工作!:)

于 2010-01-28T13:21:42.350 回答
-1

我的理解是,如果您按照了解 Silverlight 2 中的 WCF 服务中描述的客户端访问过程,您应该能够在运行时选择要访问的服务,因为您不需要在客户端创建代理。

这篇文章的一个片段:

现在我们可以将注意力转向客户端应用程序。首先,让我先提醒大家不要在 Visual Studio 中使用“添加服务引用”来创建神奇的服务客户端。代码非常冗长,难以管理,编辑很容易被覆盖,并且几乎总是被用作不实际学习 WCF 的借口。

正如我已经多次提到的,WCF 依赖于 ABC 的概念。对于 .NET 和 Silverlight,您可以在通道工厂中将地址和绑定与合同合并以创建通道。这不仅仅是花哨的概念架构师所说的,这正是您的代码的样子(非常好的架构的标志!)下面是我的意思的 .NET 版本:

BasicHttpBinding basicHttpBinding = new BasicHttpBinding();
EndpointAddress endpointAddress = new EndpointAddress("http://localhost:1003/Person.svc");
IPersonService personService = new ChannelFactory<IPersonService>(basicHttpBinding, endpointAddress).CreateChannel();

Person person = personService.GetPersonData("F488D20B-FC27-4631-9FB9-83AF616AB5A6");
于 2010-03-11T21:58:29.347 回答