2013-10-25 5 views
0

У меня есть служба WCF, и у меня есть FaultContract. У меня есть причина в FaultContract, поэтому у меня есть что-то вроде этого.WCF Service FaultContract Понимание

FltInfo.Reason = "This is a test"; 
throw new FaultException<FaultInfo>(FltInfo, new FaultReason(FltInfo.Reason)); 

Очевидно, что у меня есть класс FaultInfo, определенный для моего контракта с данными. Но что мне нужно делать или как мне это сделать, если я хочу получить с ним код ошибки, детали или уровень (тип критичности)?

Если бы я не включил некоторые из них, я все равно получил бы сообщение о неисправности мыла?

Кроме того, не вызвало бы возникновение ошибки из TRY-CATCH (или что у вас), прекратив связь в аспекте отправки/получения? Значение, если у меня есть 1 сообщение, проходящее через прием, и у этого сообщения 1 есть список, скажем, 100 элементов (например, массив), если я обрабатываю массив из 100, и я могу сказать, что 30-й элемент, но он вызывает вина. Разве я не потерял бы все (все 100), потому что ответ никогда не был сделан и только ошибка?

Благодаря

ответ

1

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

Вы можете изменить это, указав свой тип ответа в части неисправности, а также как некорректная маркировка одной части. Или ваш сервис может иметь тип ответа обертки, который позволяет вам отмечать определенные части данных, которые были возвращены как недействительные, которые он делает, поскольку это делается в вашем решении.

+0

Я решил, что я работаю с данными, связанными с ошибками, а не с ошибками или исключениями, например. У меня больше критических элементов системы, которые бросают faultcontract. Хотя, в зависимости от системы, он не может доставить этот отказ. (например, проблема сети, проблема связи и т. д.). Это похоже на соответствующий такт? – user2887486

+0

звучит похоже на то, как я обрабатываю их в наших производственных системах. Неисправности вызывают серьезные критические проблемы, ответы об ошибках возвращаются из ошибок данных/состояний. Я думаю, что ваш выбор звучит для меня соответствующим образом. – joshholl

 Смежные вопросы

  • Нет связанных вопросов^_^