我的代码如下:
<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包装器,而某些操作则不需要)。
有人可以帮我吗?
答案 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(它对我有用)