我想爲全球提供誤差在我的WCF應用程序處理,我知道我可以實現我的IErrorHandler,例如:全局的錯誤處理WCF - 但返回自定義消息
http://www.remondo.net/wcf-global-exception-handling-attribute-and-ierrorhandler/
http://www.codeproject.com/Articles/26320/WCF-Error-Handling-and-Fault-Conversion
http://www.haveyougotwoods.ca/2009/06/24/creating-a-global-error-handler-in-wcf
不過,我」 d真正想做的是「處理」異常,不僅僅是通過記錄或拋出Fault異常,而是通過將自定義消息傳回給調用者。我們已經使用自定義消息來返回與業務相關的消息(如驗證錯誤或警告)。
在非常粗糙的僞代碼,我會做這在try-catch塊這樣的
public MyResponseDto CallMyService(MyRequestDto request)
{
...
try
responseDto = blah blah blah
catch (Exception ex)
responseDto.ClientMessage.Description = ex.Messaeg
finally
return responseDto;
}
我的問題是 - 怎麼我可以在全球處理器做到這一點?它將如何訪問「ClientMessage」?
我的直覺是我需要使用屬性,然後反射才能訪問我的Service內部成員?但是如何將其分配回我的響應消息對象?
謝謝!