如何将裸结果返回给WCF客户端

时间:2010-10-13 19:59:19

标签: wcf wcf-rest

我的代码如下:

<OperationContract()>
<Description("")>
<WebGet(Bodystyle:=WebMessageBodyStyle.Bare, UriTemplate:="TestConnection")>
Function TestConnection() As String


Public Function TestConnection() As String Implements ITestSvc.TestConnection
    WebOperationContext.Current.OutgoingResponse.ContentType = "text/plain"
    Return "Connection Success"
End Function

但它返回的是<string xmlns='...'>Connection Success</string>

如何在没有XML包装器的情况下返回“连接成功”。我知道我们可以用MessageEncoder做些什么。但是,我希望在操作级别提供它(某些操作需要XML / JSON包装器,而某些操作则不需要)。

有人可以帮我吗?

3 个答案:

答案 0 :(得分:12)

这是返回纯文本的最简单的解决方案。将响应格式设置为xml并将outgoingresponse设置为text / html。应该做的伎俩。

[WebGet(ResponseFormat = WebMessageFormat.Xml)]
public string DoWork()
{

    WebOperationContext.Current.OutgoingResponse.ContentType = "text/html";
    return "THIS IS PLAIN TEXT";
}

答案 1 :(得分:3)

如果您正在处理HTTP,有一种方法可以实现这一点,但这并不是很好,但我想我可以提一下。

您可以将方法的返回类型设置为void,并将原始字符串直接输出到响应中。

[OperationContract]
[WebGet(UriTemplate = "foo")]
void Foo()
{
   HttpContext.Current.Response.Write("bar");
}

答案 2 :(得分:2)

答案在这里WCF ResponseFormat For WebGet(它对我有用)