FaultException.Detail voltando vazio

Estou tentando capturar uma determinada FaultException em um cliente WCF. Basicamente, preciso extrair uma descrição interna da classe de falha para que eu possa empacotá-la em outra exceção para que as camadas superiores façam o que for.

Fiz isso com êxito várias vezes, o que a diferencia desta vez é que a falha é declarada como uma matriz, como você pode ver no atributo de referência de serviço declarado no topo do método que gera a exceção:

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

Este é o meu código:

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;
  }
}

Problema éDetalhe (que é uma matriz) está sempre voltando vazio no código, mesmo que eu possa ver os dados (campo de descrição etc.) na resposta SOAP do rastreamento do WCF.

Então, o que eu preciso está definitivamente voltando, mas, por algum motivo, não é desserializado ou não consigo acessar o código.

Qualquer ajuda apreciada!

ATUALIZAR:

Tentando com a sugestão do @Darin, mas sem sorte, a string que estou extraindo do XmlReader é "/ r / n":

var sb = new StringBuilder();

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

var detail = sb.ToString();

Parece que a seção de detalhes não está chegando!

questionAnswers(5)

yourAnswerToTheQuestion