Boa noite pessoal. Tudo bem?
Venho pedir a ajuda de vocês para ler todos as propriedades de um objeto.
Neste caso eu estou executando métodos de uma DLL, e ela retorna objetos complexo.
Após pesquisar na internet encontrei um código que adapte para as minhas necessidades, mas infelizmente em um determinado ponto ocorre a seguinte exceção: "A contagem dos parâmetros não coincide."
O erro ocorre quando lê um objeto que contém uma lista e um e-mail, conforme imagem abaixo:
Quanto vou obter as propriedades do objeto, o objeto é o e-mail literal. Veja imagem abaixo.

Agradeço a ajuda desde já.
Segue abaixo método completo.
public static void LerObjeto(object obj)
{
var tipoObj = obj.GetType(); //Pega tipo do Obj
PropertyInfo[] propriedadesObj = tipoObj.GetProperties(); //Pega as propriedades do obj
foreach (var propriedade in propriedadesObj) //Varre as propriedades
{
object propValue = propriedade.GetValue(obj,null); // Pega conteudo da propriedade
var elems = propValue as IList;
if (elems != null)
{
foreach (var item in elems)
{
LerObjeto(item);
}
}
else
{
if (propriedade.PropertyType.Assembly == tipoObj.Assembly)
{
Console.WriteLine(" Nome: {0}", propriedade.Name);
LerObjeto(propValue);
}
else
{
Console.WriteLine("{0}: {1}", propriedade.Name, propValue);
}
}
}
}
Abs.
Renato Mello