Я хочу динамически проанализировать дерево объектов, чтобы выполнить некоторую выборочную проверку. Валидация не важна как таковая, но я хочу лучше понять класс PropertyInfo.
Я буду делать что-то вроде этого,
public bool ValidateData(object data)
{
    foreach (PropertyInfo propertyInfo in data.GetType().GetProperties())
    {
        if (the property is a string)
        {
            string value = propertyInfo.GetValue(data, null);
            if value is not OK
            {
                return false;
            }
        }
    }            
    return true;
}
На самом деле единственной частью, о которой я забочусь сейчас, является "если свойство является строкой". Как я могу узнать из объекта PropertyInfo, какой он тип.
Мне придется иметь дело с основными вещами, такими как строки, ints, double. Но мне также придется иметь дело с объектами, и если это так, мне нужно будет пересечь дерево объектов дальше внутри этих объектов, чтобы проверить основные данные внутри них, они также будут иметь строки и т.д.
Спасибо.