FaultException.Detail возвращается пустым

Я пытаюсь перехватить данное исключение FaultException на клиенте WCF. Мне в основном нужно извлечь внутреннее описание из класса неисправности, чтобы затем я мог упаковать его в другое исключение, чтобы верхние уровни могли делать что угодно.

Я успешно делал это несколько раз, но на этот раз отличает то, что ошибка объявлена ​​как массив, как вы можете видеть из атрибута ссылки на службу, объявленного поверх метода, который вызывает исключение:

[System.ServiceModel.FaultContractAttribute(typeof(FaultClass[]), Action = "http://whatever/", Name = "whateverBusinessFault")] 

Это мой код:

try
{
  // call service here
}
catch (FaultException<FaultClass[]> ex)
{
  if (ex.Detail != null && ex.Detail.Length > 0)
  {
    throw new CustomException(ex.Detail[0].description);
  }
  else
  {
    throw;
  }
}

Проблема Деталь (которая представляет собой массив) всегда возвращается пустой в коде, даже если я могу видеть данные (поле описания и т. Д.) В SOAP ответ от трассировки WCF.

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

Любая помощь приветствуется!

ОБНОВЛЕНИЕ :

Попытка с предложением @Darin, но безуспешно, строка, которую я извлекаю из XmlReader, - "/ r / n":

var sb = new StringBuilder();

using (XmlReader reader = fault.GetReaderAtDetailContents())
{
  while (reader.Read())
     sb.AppendLine(reader.ReadOuterXml()); 
}

var detail = sb.ToString();

Похоже, что раздел подробностей вообще не появляется!

9
задан JohnIdol 23 September 2010 в 14:06
поделиться