WCF返回不同类型的数据

时间:2011-11-19 17:01:17

标签: c# wcf

我刚刚开始使用WCF和Web服务。我对他们背后的目的以及他们的工作方式有一个非常坚定的理解,但我想知道如果你想要返回Text以外的东西,他们的能力是什么。例如直接的HTML表单或图像。

我做了一些简单的谷歌搜索,但我能找到的是如何处理从表单传递的数据,而不是如何返回表单。

我希望有人能给我一个关于我应该关注的一个好的起点。我看了一个帖子,说明用WCF查看Streaming,但这看起来有点过分,并且想知道是否有人可以给我一些一般的建议和意见。

非常感谢, 罗纳德。

3 个答案:

答案 0 :(得分:1)

WCF服务可以返回运行时可以分解的任何对象。我们在服务中返回自定义对象没有问题,前提是它是一个使用它们的.NET客户端。其他语言可能必须更加努力地对复杂对象进行反序列化。 (这意味着您必须编写更多代码,因为非Visual Studio IDE可能不知道如何自动生成所需的客户端代码。)

答案 1 :(得分:0)

它可能取决于实际绑定,但为了简单起见,假设您通过http绑定WCF服务。然后,您传递给服务和从服务传递的所有内容都应该以某种方式转换为字符串。简单的类型,整数,doules,字符串,很容易兑换。复合类型 - 也包括简单类型。当涉及图像或html表单等特定类型时,您总是试图找到一种方法在一侧转换它们并在另一侧转换回来。在许多情况下,序列化程序可以为您执行此操作,例如,如果返回byte[],则数据将编码为base64字符串。如果序列化程序由于某种原因失败,您必须找到自己的方式来传递特定类型。还请记住,对于WCF,您可以选择特定的序列化程序:

http://nirajrules.wordpress.com/2009/08/26/wcf-serializers-xmlserializer-vs-datacontratserializer-vs-netdatacontractserializer/

答案 2 :(得分:0)

WCF旨在使用标准或自定义协议构建Web API。如果使用默认配置,WCF将输出使用SOAP序列化的对象,但例如JSON也可用。

WCF当然能够输出纯HTML,但它的设计并未考虑到这一目标。它旨在用于进程之间的通信。