c# – WCF休息返回HttpResponseMessage想要在设置内容时协商

我有一个WCF Restful服务,我希望方法返回HttpResponseMessage,因为它似乎是结构化的,而不仅仅是返回数据或异常,或者其他任何可能使它的方式.

我假设这是一个正确的,如果不是让我知道,但我的问题是当我尝试设置HttpResponseMessage.Content时会发生什么.当我这样做,我做了RESTful呼叫请求身份验证的客户端.

这是我的代码

在界面中:

[WebGet(UriTemplate = "/GetDetailsForName?name={name}",ResponseFormat = Webmessageformat.Json)]
HttpResponseMessage GetDetailsForName(string name);

在课堂里:

public HttpResponseMessage GetDetailsForName(string name)
{
   HttpResponseMessage hrm = new HttpResponseMessage(HttpStatusCode.OK)
       {
       //If I leave this line out,I get the response,albeit empty  
       Content = new StringContent("Hi") 
       };

   return hrm;
}

我想尝试使用Request.CreateResponse,但我似乎无法从我的WCF Restful方法获取请求. OperationContext.Current.RequestContext没有CreateResponse.

任何指针?

解决方法

不幸的是,这不行.演示的代码说:

Construct an HttpResponseMessage object,serialize it with a JSON serializer and pass the result over the wire.

问题是HttpResponseMessage是一次性的,并不意味着被序列化,而StringContent根本不能被序列化.

至于为什么您被重定向到认证表单 – 当它无法序列化StringContent时,该服务会引发异常并返回一个被认为是认证问题的400 HTTP状态代码.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...