C# 返回HttpStatus代码,其中包含IPParameterInspector AfterCall可以处理的来自WCF Rest服务的消息
然后,我在几个服务中使用了许多方法,并使用自定义属性对这些方法进行了修饰 该属性使用C# 返回HttpStatus代码,其中包含IPParameterInspector AfterCall可以处理的来自WCF Rest服务的消息,c#,.net,wcf,.net-4.0,wcf-rest,C#,.net,Wcf,.net 4.0,Wcf Rest,然后,我在几个服务中使用了许多方法,并使用自定义属性对这些方法进行了修饰 该属性使用IOperationBehavior中的ApplyDispatchBehavior附加到方法,并使用ipParameterInspector中的BeforeCall和AfterCall方法在调用服务方法之前和之后执行一些处理 一切都很好,很好,很好。。。 当服务方法需要返回http状态和消息时,就会出现问题。我能找到的唯一方法是该方法抛出一个WebFaultException传入消息和相应的http状态 问题是附
IOperationBehavior
中的ApplyDispatchBehavior
附加到方法,并使用ipParameterInspector
中的BeforeCall
和AfterCall
方法在调用服务方法之前和之后执行一些处理
一切都很好,很好,很好。。。
当服务方法需要返回http状态和消息时,就会出现问题。我能找到的唯一方法是该方法抛出一个WebFaultException
传入消息和相应的http状态
问题是附加属性的AfterCall
从未被调用
它的长短是:
- 有没有办法回信 以及设置http状态,而无需 抛出异常
- 如果我必须抛出一个
是否仍有方法通过返回的消息调用我的属性WebFaultException
public void SetResponseHttpStatus(HttpStatusCode statusCode)
{
var context = WebOperationContext.Current;
context.OutgoingResponse.StatusCode = statusCode;
}
…在每次返回之前,如果不是一个普通的200响应,则应该这样做。有趣。我回来了。ContentType是application/json,但是,只要我设置WebOperationContext.Current.OutgoingResponse.StatusCode=HttpStatusCode.Created(201),ContentType就会切换到application/xml。