Пройдите через неизвестный сложный объект, динамически используя отражение - PullRequest
0 голосов
/ 15 октября 2019

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

Конечная цель - записать все это в строку для целей регистрации.

У меня есть код ниже. Но проблема в том, что он не достигает уровня ребенка

public static string GetLogFor(object target)
{
    var builder = new StringBuilder();

    foreach (var property in @target.GetType().GetProperties())
    {

        builder
            .Append(property.Name)
            .Append(" = ")
            .Append(property.GetValue(@target, null))
            .AppendLine();
    }

    return builder.ToString();
}

Ref

1 Ответ

1 голос
/ 16 октября 2019

Вы можете просто использовать сериализацию Json, если выходные данные соответствуют вашим потребностям:

public static string GetLogFor(object target)
{
    return Newtonsoft.Json.JsonConvert.SerializeObject(target, Formatting.Indented);
}
...