Как следует из вопроса, я стараюсь изо всех сил пытаться вернуть несколько исключений FaultException из одного вызова WCF:
Сценарий следующий:
ClientA делает вызов ClientB
ClientB делает много вызовов ServerC, некоторые из которых могут возвращать FaultExceptions
Я хотел бы вернуть все FaultExceptions обратно в ClientA, и я не сталкивался ни с какимихороший способ сделать это.
Я пытался сериализовать и десериализовать как FaultExceptions, так и объекты MessageFault с XmlSerializer, DataContractSerializer и NetDataContractSerializer, но безрезультатно.
Единственные элементы, которые меня действительно волнуют - это Причина, Код и Детали.Мое последнее средство - вручную написать код для сериализации Причины и Кода, но я надеюсь избежать этого.
Есть ли другие способы, по которым мне этого не хватает?
Редактировать: Судя по полученным ответам, я думаю, что мой вопрос не очень ясен
В псевдокоде я пытаюсь сделать следующее:
class ClientA()
{
Main()
{
ClientB.OperateOnManyValues(array[] values)
}
}
ClientB()
{
OperateOnManyValues(array[] values)
{
foreach(Val val in values)
{
try
{
ServerC.OperateOnOneValue(val)
}
catch(FaultException ex)
{
errorList.Add(ex)
}
}
return errorList
}
}
Изменить 2:
Прежде всего, я хочу поблагодарить всех за попытку ответить на вопрос.Я чувствую, что некоторые ответы являются ответами на различные проблемы.
Один из авторов предложил мне выдать исключение, как только я получу ошибку.К сожалению, именно так теперь и должна работать система.Каждое оперируемое значение полностью не зависит от других и не зависит от успеха или ошибки других значений.Я не хочу, чтобы одна ошибка влияла на обработку других значений.
Другой автор предложил вернуть какую-то структуру данных со всеми данными FaultException для всех ошибок.Это то, что я хотел бы сделать, но проблема в том, что возвращение списка FaultExceptions выдает ошибки сериализации.Есть ли способ сериализации FaultException, чтобы я мог вернуть несколько в списке из вызова WCF?