3

那么,我在一些服务中拥有许多方法,这些服务用自定义属性进行了装饰。

该属性使用ApplyDispatchBehaviorfromIOperationBehavior附加到方法BeforeCallAfterCall方法 fromIParameterInspector在调用服务方法之前和之后进行一些处理。

一切都很好,很好......当服务方法需要返回一个http状态以及一条消息时,问题就来了。我能找到的唯一方法是让方法WebFaultException<T>传递我们的消息和适当的 http 状态。

这个问题AfterCall是从不调用附加属性。

它的长短是:

  • 有没有办法在不抛出异常的情况下返回消息并设置 http 状态?
  • 如果我必须抛出 aWebFaultException<T>是否有办法仍然可以使用返回的消息调用我的属性?
4

1 回答 1

6

好的,经过大量搜索,我找到了这个问题这个答案

总结一下:调用一个小方法,例如:

public void SetResponseHttpStatus(HttpStatusCode statusCode)
{
    var context = WebOperationContext.Current;
    context.OutgoingResponse.StatusCode = statusCode;
}

...在每个不是普通 200 响应的返回之前都应该这样做。

于 2010-10-15T08:26:56.203 回答