WCF ошибка и обработка исключений - PullRequest
0 голосов
/ 07 декабря 2011

В службе WCF я хотел бы обрабатывать ошибки и исключения, используя пользовательские ошибки.

Мне нужно иметь возможность в случае возврата ошибки

CustomFault с описанием и кодом ошибки

Как я могу это реализовать?

1 Ответ

2 голосов
/ 07 декабря 2011

Сначала вам нужно создать класс DataContract для вашей пользовательской ошибки. Похоже, в вашем случае, как минимум, этот класс будет иметь свойство Error Code и свойство Description. Далее, в вашем контракте на обслуживание вам нужно оформить любые сервисные операции, которые могут вызвать эту ошибку, с помощью атрибута FaultContract. Например:

[OperationContract()]
[FaultContract(typeof(MyCustomFault))]
ResponseDataContract SomeServiceOperation(RequestDataContract request);

Наконец, в реализации вашей службы вам нужно выбросить пользовательскую ошибку как FaultExcepton. Например:

try
{
  DoStuff();
}
catch (Exception e)
{
  throw new FaultException<MyCustomFault>(new MyCustomFault
                                              {
                                                Description = "Oh No!",
                                                ErrorCode = 1234
                                              });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...