【问题标题】:How can I return bare result back to WCF client [duplicate]如何将裸结果返回给 WCF 客户端 [重复]
【发布时间】:2011-04-25 01:26:00
【问题描述】:

我的代码如下:

<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

但它返回的是&lt;string xmlns='...'&gt;Connection Success&lt;/string&gt;

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

谁能帮我解决这个问题?

【问题讨论】:

    标签: wcf wcf-rest


    【解决方案1】:

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

    [WebGet(ResponseFormat = WebMessageFormat.Xml)]
    public string DoWork()
    {
    
        WebOperationContext.Current.OutgoingResponse.ContentType = "text/html";
        return "THIS IS PLAIN TEXT";
    }
    

    【讨论】:

    • 对我不起作用
    【解决方案2】:

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

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

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

    【讨论】:

    • 这很好,它帮助了我而其他人没有,谢谢
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-19
      • 1970-01-01
      • 1970-01-01
      • 2020-11-22
      相关资源
      最近更新 更多