我目前需要从Silverlight(3.0)应用程序中访问WCF服务,但我需要它是动态的 我有权访问:服务接口(ServiceContracts)和数据定义(DataContracts) 我需要的是:运行时生成/创建的WCF客户端代理。
有一些解决方案吗?
答案 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");