איך מעבירים שגיאה מ WCF service ל Client
הסבר על איך מעבירים שגיאה מ WCF service ל Client
אז איך מעבירים שגיאה מ WCF service ל Client?
צריך להשתמש ב FaultException, ובמקרה שצריך להעביר אוביקט ולא רק הודעת שגיאה, צריך להשתמש ב FaultContract. לדוגמה:
- [OperationContract]
- [FaultContract(typeof(MyExceptionContainer))]
- int Multiply(int num1, int num2);
יש שיטה נחמדה, איך לטפוס שגיאות ע'י שימוש ב lambda expressions:
- public class MyBase {
- protected T ExecuteFaultHandledOperation<T>(Func<T> codeToExecute) {
- try {
- return codeToExecute.Invoke();
- }
- catch(FaultException ex) {
- throw ex
- }
- catch(Exception ex) {
- throw new FaultException(ex.Message);
- }
- }
- }
- public class Cats : MyBase, ICat
- {
- public Cat GetCat(int catId) {
- return ExcludeFaultHandledOperation(()=>
- {
- return cat = catRepository.GetCatById(catId);
- });
- }
- }