Служба WCF FaultContract Понимание

У меня есть служба WCF, и у меня есть FaultContract. У меня есть причина в 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 ответ

Решение

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

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

Другие вопросы по тегам