2012-01-17 76 views

回答

2

这是不可能的几个原因,他们夫妇在这里:

  • 添加在Visual Studio服务引用生成代码(实体客户端类和其他类型由服务暴露)。 Silverlight没有必要的库来处理这个任务相当容易(很多代码将不得不被重写/移植到Silverlight中)。

  • 为了让您的代码实际使用它,您需要编译生成的代码。在SL中没有办法做到这一点,因为它不包含任何编译器。

  • 实际使用并不是很实际,因为使用它的代码必须能够处理它不知道的类型(上面代码生成的类型)。所以你必须使用很多反射或其他类似的技巧。

如果你想写可以访问任意的OData服务,我建议你看看Microsoft.Data.OData.dll客户端应用程序。它是最近CTP的一部分:http://blogs.msdn.com/b/astoriateam/archive/2011/10/13/announcing-wcf-data-services-oct-2011-ctp-for-net-4-and-silverlight-4.aspx 它实现了OData格式的读写器(类似于XmlReader/XmlWriter,但是用于OData)。特别是它不需要预先知道服务的知识,它可以读取任何OData响应。

0

你应该做到以下几点:

BasicHttpBinding binding = new BasicHttpBinding(); 
var endpoint = new EndpointAddress("<Yours Endpoint Address>"); 
var factory = new ChannelFactory<IYourServiceContract>(basicHttpBinding, endpointAddress); 

希望这会有所帮助。

+0

但是,这是对于正常的WCF服务,如果我没有wrong.Is它也是WCF数据服务的同样的方式? – 2012-01-17 08:56:11

相关问题