Silverlight中动态WCF客户端代理的解决方案?

时间:2010-01-27 10:29:21

标签: c# wcf silverlight silverlight-3.0 wcf-client

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

有一些解决方案吗?

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

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

WorkSight Blog » Blog Archive » A Dynamic WCF Client Proxy in Silverlight

如果你们中的任何人设法让它发挥作用,请告诉我们! :)

答案 2 :(得分:-1)

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

本文的摘录:

  

现在我们可以把注意力转向   客户申请。首先,让我来   首先提醒大家   你不应该使用“添加服务”   参考“在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");